Browse Source

驾驶舱修改

zhaoke 2 years ago
parent
commit
62d25838da

+ 176 - 0
src/views/dashboard/hooks/nodeCode.js

@@ -0,0 +1,176 @@
+const trackNodesMap = {
+  departure: [
+    {
+      name: '收货核单',
+      nodeCode: 'DEH',
+    },
+    {
+      name: '收运核查',
+      nodeCode: 'ACC_CHECK',
+    },
+    {
+      name: '安检',
+      nodeCode: '安检', // 暂无
+    },
+    {
+      name: '加货',
+      nodeCode: 'ACC_BUP',
+    },
+    {
+      name: '预配载',
+      nodeCode: 'LS_CARGO',
+    },
+    // {
+    //   name: '待运区',
+    //   nodeCode: 'WAT_LOC',
+    // },
+    // {
+    //   name: '货站交接',
+    //   nodeCode: 'CARGOS_HANDOVER_STATUS_02',
+    // },
+    {
+      name: '交接复核',
+      nodeCode: 'CARGOS_HANDOVER_STATUS_03',
+      // labelWidth: 70,
+    },
+    {
+      name: '机下交接',
+      nodeCode: '出港货邮',
+    },
+    {
+      name: '装机',
+      nodeCode: '装载完成',
+    },
+    {
+      name: '关闭舱门',
+      nodeCode: '关闭舱门',
+    },
+    {
+      name: '拉下登记',
+      nodeCode: 'CARGOS_OFFLOAD',
+    },
+    {
+      name: '拉回确认',
+      nodeCode: 'OFFLOAD_CONFIRM',
+    },
+    // {
+    //   name: '起飞',
+    //   nodeCode: 'TAKEOFF', // 待定
+    // },
+    {
+      name: '退运',
+      nodeCode: 'BILL_RETURN',
+    },
+  ],
+  arrival: [
+    {
+      name: '卸机',
+      nodeCode: 'CARGOS_ARR_HANDOVER',
+    },
+    {
+      name: '库区到达',
+      nodeCode: 'CARGOS_HANDOVER_STATUS_01',
+    },
+    {
+      name: '货站交接',
+      nodeCode: 'CARGOS_HANDOVER_STATUS_99',
+    },
+    {
+      name: '理货',
+      nodeCode: 'IMP_TALLY',
+    },
+    {
+      name: '出库',
+      nodeCode: 'FSUDLV',
+    },
+  ],
+  internationalDeparture: [
+    {
+      name: '入园',
+      nodeCode: 'EPORTREL',
+    },
+    {
+      name: '海关',
+      nodeCode: 'MTREL_out',
+    },
+    {
+      name: '运抵',
+      nodeCode: 'FOH',
+    },
+    {
+      name: '安检',
+      nodeCode: 'REH',
+    },
+    {
+      name: '收运核单',
+      nodeCode: 'RCS',
+    },
+    {
+      name: '理货',
+      nodeCode: 'ACC_BUP',
+    },
+    // {
+    //   name: '待运区',
+    //   nodeCode: 'WAT_LOC',
+    // },
+    // {
+    //   name: '货站交接',
+    //   nodeCode: 'CARGOS_HANDOVER_STATUS_02',
+    // },
+    {
+      name: '交接复核',
+      nodeCode: 'CARGOS_HANDOVER_STATUS_03',
+    },
+    {
+      name: '机下交接',
+      nodeCode: '出港货邮',
+    },
+    {
+      name: '装机',
+      nodeCode: '装载完成',
+    },
+    {
+      name: '拉下',
+      nodeCode: 'CARGOS_OFFLOAD',
+    },
+    {
+      name: '实配',
+      nodeCode: 'LS_CARGO',
+    },
+    // {
+    //   name: '退运',
+    //   nodeCode: '',
+    // },
+  ],
+  internationalArrival: [
+    {
+      name: '卸机',
+      nodeCode: 'FFM',
+    },
+    {
+      name: '机下交接',
+      nodeCode: 'CARGOS_HANDOVER_STATUS_01',
+    },
+    {
+      name: '货站交接',
+      nodeCode: 'CARGOS_HANDOVER_STATUS_99',
+    },
+    {
+      name: '理货',
+      nodeCode: 'RCF报',
+    },
+    // {
+    //   name: '快件运抵',
+    //   nodeCode: '',
+    // },
+    {
+      name: '海关放行',
+      nodeCode: 'MTREL_in',
+    },
+    {
+      name: '出库',
+      nodeCode: 'DLV报',
+    },
+  ],
+}
+export default trackNodesMap

+ 19 - 1
src/views/dashboard/hooks/usePublic.ts

@@ -459,7 +459,24 @@ export function usePublic() {
       return []
     }
   }
-
+  const findData = (arr1, arr2, key, dot) => {
+    const msg = _.unionWith(arr1, arr2, _.isEqual)
+    const res = _.unionBy(msg, key)
+    const result: any = []
+    res.forEach((item) => {
+      arr2.forEach((p) => {
+        if (item[key] == p[key]) {
+          item = _.merge(item, p)
+        }
+      })
+    })
+    res.forEach((item) => {
+      if (item[dot] && item[dot] != undefined) {
+        result.push(item)
+      }
+    })
+    return result
+  }
   return {
     optionLeft,
     airlineAbnormalBaggage,
@@ -467,5 +484,6 @@ export function usePublic() {
     airStutas,
     hourPeak,
     getPublicData,
+    findData,
   }
 }

+ 16 - 8
src/views/dashboard/index.vue

@@ -71,7 +71,7 @@
               <div class="dashboard-content-top-center-top-list-num">{{ stockNums }}</div>
             </div>
             <div class="dashboard-content-top-center-top-list">
-              <div class="dashboard-content-top-center-top-list-txt">已装载总量KG</div>
+              <div class="dashboard-content-top-center-top-list-txt">载总量KG</div>
               <div class="dashboard-content-top-center-top-list-num">{{ weightNums }}</div>
             </div>
           </div>
@@ -94,7 +94,8 @@
                     <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.flightState }}</div>
                     <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.airport }}</div>
                     <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.planTime }}</div>
-                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.acTime }}</div>
+                    <!-- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.acTime }}</div> -->
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">-</div>
                     <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.planeType }}</div>
                     <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.KHT }}</div>
                   </div>
@@ -164,10 +165,16 @@ import ComHead from "./components/comHead.vue";
 import { Calendar, CaretBottom } from "@element-plus/icons-vue";
 import Dialog from "@/components/dialog/index.vue";
 import { usePublic, showTimeMsg } from "./hooks/usePublic";
+import nodeCode from "./hooks/nodeCode";
 import { parseTime, isValue } from "@/utils/validate";
 import * as _ from "lodash";
-const { optionLeft, airCompaneBaggage, airlineAbnormalBaggage, getPublicData } =
-  usePublic();
+const {
+  optionLeft,
+  airCompaneBaggage,
+  airlineAbnormalBaggage,
+  getPublicData,
+  findData,
+} = usePublic();
 const timePickerName = ref<number>(0);
 const flag = ref<boolean>(false);
 const loading1 = ref<boolean>(false);
@@ -394,6 +401,7 @@ const airlineFunc = async () => {
     },
   ])) as any;
   if (listValues && isValue(listValues)) {
+    const res = findData(nodeCode.arrival, listValues, "nodeCode", "flightNum");
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption);
     (newObj.dataZoom = [
       {
@@ -402,14 +410,14 @@ const airlineFunc = async () => {
         xAxisIndex: [0],
         filterMode: "filter",
         start: 0,
-        end: 20,
+        end: 40,
       },
     ]),
-      listValues.forEach((item) => {
-        item.jobTime = NODE_CODE[item["nodeCode"]] ?? item["nodeCode"];
+      res.forEach((item) => {
+        item.jobTime = item["name"] ?? item["nodeCode"];
         item.weight = item["flightNum"];
       });
-    airlineObj.value = pubFunc(listValues, newObj);
+    airlineObj.value = pubFunc(res, newObj);
   }
   loading7.value = false;
 };

+ 19 - 6
src/views/dashboard/indexHomeOut.vue

@@ -182,10 +182,17 @@ import ComHead from "./components/comHead.vue";
 import { Calendar, CaretBottom } from "@element-plus/icons-vue";
 import Dialog from "@/components/dialog/index.vue";
 import { usePublic, showTimeMsg } from "./hooks/usePublic";
+import nodeCode from "./hooks/nodeCode";
 import { parseTime, isValue } from "@/utils/validate";
 import * as _ from "lodash";
-const { optionLeft, airCompaneBaggage, airlineAbnormalBaggage, getPublicData } =
-  usePublic();
+console.log(nodeCode);
+const {
+  optionLeft,
+  airCompaneBaggage,
+  airlineAbnormalBaggage,
+  getPublicData,
+  findData,
+} = usePublic();
 const timePickerName = ref<number>(0);
 const flag = ref<boolean>(false);
 const loading1 = ref<boolean>(false);
@@ -415,6 +422,12 @@ const airlineFunc = async () => {
     },
   ])) as any;
   if (listValues && isValue(listValues)) {
+    const res = findData(
+      nodeCode.departure,
+      listValues,
+      "nodeCode",
+      "flightNum"
+    );
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption);
     (newObj.dataZoom = [
       {
@@ -423,14 +436,14 @@ const airlineFunc = async () => {
         xAxisIndex: [0],
         filterMode: "filter",
         start: 0,
-        end: 20,
+        end: 40,
       },
     ]),
-      listValues.forEach((item) => {
-        item.jobTime = NODE_CODE[item["nodeCode"]] ?? item["nodeCode"];
+      res.forEach((item) => {
+        item.jobTime = item["name"] ?? item["nodeCode"];
         item.weight = item["flightNum"];
       });
-    airlineObj.value = pubFunc(listValues, newObj);
+    airlineObj.value = pubFunc(res, newObj);
   }
   loading7.value = false;
 };

+ 47 - 151
src/views/dashboard/indexIn.vue

@@ -9,10 +9,7 @@
               <div class="dashboard-content-top-left-item-top-title">
                 小时峰值分析
               </div>
-              <div
-                class="dashboard-content-top-left-item-top-time"
-                @click="showDatePicker(showTimeMsg.HourlyPeak)"
-              >
+              <div class="dashboard-content-top-left-item-top-time" @click="showDatePicker(showTimeMsg.HourlyPeak)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -21,13 +18,7 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading1"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading1" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww1" :option="hourlyPeakObj" />
             </div>
           </div>
@@ -36,10 +27,7 @@
               <div class="dashboard-content-top-left-item-top-title">
                 日趋势分析
               </div>
-              <div
-                class="dashboard-content-top-left-item-top-time"
-                @click="showDatePicker(showTimeMsg.WaybillTrend)"
-              >
+              <div class="dashboard-content-top-left-item-top-time" @click="showDatePicker(showTimeMsg.WaybillTrend)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -48,13 +36,7 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading2"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading2" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww12" :option="waybillTrendObj" />
             </div>
           </div>
@@ -63,10 +45,7 @@
               <div class="dashboard-content-top-left-item-top-title">
                 始发站统计分析
               </div>
-              <div
-                class="dashboard-content-bottom-left-top-time"
-                @click="showDatePicker(showTimeMsg.NodePeak)"
-              >
+              <div class="dashboard-content-bottom-left-top-time" @click="showDatePicker(showTimeMsg.NodePeak)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -75,26 +54,14 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading3"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading3" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww4" :option="nodePeakObj" />
             </div>
           </div>
         </div>
         <!-- 地图 -->
         <div class="dashboard-content-top-center">
-          <div
-            v-loading="loading4"
-            element-loading-text="数据加载中..."
-            element-loading-svg-view-box="-10, -10, 50, 50"
-            element-loading-background="rgba(0,0,0, 0.3)"
-            class="dashboard-content-top-center-top"
-          >
+          <div v-loading="loading4" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-center-top">
             <div class="dashboard-content-top-center-top-list">
               <div class="dashboard-content-top-center-top-list-txt">
                 今日计划航班数
@@ -113,106 +80,66 @@
             </div>
             <div class="dashboard-content-top-center-top-list">
               <div class="dashboard-content-top-center-top-list-txt">
-                已装载总量KG
+                载总量KG
               </div>
               <div class="dashboard-content-top-center-top-list-num">
                 {{ weightNums }}
               </div>
             </div>
           </div>
-          <div
-            v-loading="loading5"
-            element-loading-text="数据加载中..."
-            element-loading-svg-view-box="-10, -10, 50, 50"
-            element-loading-background="rgba(0,0,0, 0.3)"
-            class="dashboard-content-top-center-bottom"
-          >
+          <div v-loading="loading5" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-center-bottom">
             <div class="dashboard-content-top-center-bottom-title">
               航班动态跟踪
             </div>
             <div class="dashboard-content-top-center-bottom-content">
               <div class="dashboard-content-top-center-bottom-content-head">
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   公司/航班号
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   航班状态
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   始发站/经停
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   计划到达
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   实际到达
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   机型
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   类型
                 </div>
               </div>
               <div class="dashboard-content-top-center-bottom-content-bottom">
-                <vue3-seamless-scroll
-                  :list="listData"
-                  :hover-stop="true"
-                  :hover="true"
-                  :step="0.3"
-                >
-                  <div
-                    v-for="(item, index) in listData"
-                    :key="index"
-                    class="dashboard-content-top-center-bottom-content-bottom-list"
-                  >
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                <vue3-seamless-scroll :list="listData" :hover-stop="true" :hover="true" :step="0.3">
+                  <div v-for="(item, index) in listData" :key="index" class="dashboard-content-top-center-bottom-content-bottom-list">
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.flightNo }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.flightState }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.airport }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.planTime }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <!-- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.acTime }}
+                    </div> -->
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
+                      -
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.planeType }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.KHT }}
                     </div>
                   </div>
@@ -227,10 +154,7 @@
               <div class="dashboard-content-top-right-item-top-title">
                 航司统计分析
               </div>
-              <div
-                class="dashboard-content-top-right-item-top-time"
-                @click="showDatePicker(showTimeMsg.AirlineTraffic)"
-              >
+              <div class="dashboard-content-top-right-item-top-time" @click="showDatePicker(showTimeMsg.AirlineTraffic)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -239,13 +163,7 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading6"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-right-item-bottom"
-            >
+            <div v-loading="loading6" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-right-item-bottom">
               <Echarts id="a1" :option="airlineTrafficObj" />
             </div>
           </div>
@@ -254,10 +172,7 @@
               <div class="dashboard-content-top-right-item-top-title">
                 航班动态统计
               </div>
-              <div
-                class="dashboard-content-top-right-item-top-time"
-                @click="showDatePicker(showTimeMsg.AirlineAbnormal)"
-              >
+              <div class="dashboard-content-top-right-item-top-time" @click="showDatePicker(showTimeMsg.AirlineAbnormal)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -266,47 +181,20 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading7"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading7" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww44" :option="airlineObj" />
             </div>
           </div>
         </div>
       </div>
     </div>
-    <Dialog
-      :flag="flag"
-      msg-title="日期选择"
-      @resetForm="resetForm"
-      @submitForm="submitForm"
-    >
+    <Dialog :flag="flag" msg-title="日期选择" @resetForm="resetForm" @submitForm="submitForm">
       <el-form :model="form" label-width="120px">
         <el-form-item label="开始日期">
-          <el-date-picker
-            :disabled-date="disabledStartDate"
-            v-model="form.startDate"
-            type="date"
-            placeholder="请选择开始日期"
-            size="default"
-            format="YYYY-MM-DD"
-            value-format="YYYY-MM-DD"
-          />
+          <el-date-picker :disabled-date="disabledStartDate" v-model="form.startDate" type="date" placeholder="请选择开始日期" size="default" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
         </el-form-item>
         <el-form-item label="结束日期">
-          <el-date-picker
-            :disabled-date="disabledEndDate"
-            v-model="form.endDate"
-            type="date"
-            placeholder="请选择结束日期"
-            size="default"
-            format="YYYY-MM-DD"
-            value-format="YYYY-MM-DD"
-          />
+          <el-date-picker :disabled-date="disabledEndDate" v-model="form.endDate" type="date" placeholder="请选择结束日期" size="default" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
         </el-form-item>
       </el-form>
     </Dialog>
@@ -321,6 +209,7 @@ import ComHead from "./components/comHead.vue";
 import { Calendar, CaretBottom } from "@element-plus/icons-vue";
 import Dialog from "@/components/dialog/index.vue";
 import { usePublic, showTimeMsg } from "./hooks/usePublic";
+import nodeCode from "./hooks/nodeCode";
 import { parseTime, isValue } from "@/utils/validate";
 import * as _ from "lodash";
 const {
@@ -328,6 +217,7 @@ const {
   airCompaneBaggage,
   airlineAbnormalBaggage,
   getPublicData,
+  findData,
 } = usePublic();
 const timePickerName = ref<number>(0);
 const flag = ref<boolean>(false);
@@ -554,6 +444,12 @@ const airlineFunc = async () => {
     },
   ])) as any;
   if (listValues && isValue(listValues)) {
+    const res = findData(
+      nodeCode.internationalArrival,
+      listValues,
+      "nodeCode",
+      "flightNum"
+    );
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption);
     (newObj.dataZoom = [
       {
@@ -562,14 +458,14 @@ const airlineFunc = async () => {
         xAxisIndex: [0],
         filterMode: "filter",
         start: 0,
-        end: 20,
+        end: 40,
       },
     ]),
-      listValues.forEach((item) => {
-        item.jobTime = NODE_CODE[item["nodeCode"]] ?? item["nodeCode"];
+      res.forEach((item) => {
+        item.jobTime = item["name"] ?? item["nodeCode"];
         item.weight = item["flightNum"];
       });
-    airlineObj.value = pubFunc(listValues, newObj);
+    airlineObj.value = pubFunc(res, newObj);
   }
   loading7.value = false;
 };

+ 45 - 161
src/views/dashboard/indexOut.vue

@@ -9,10 +9,7 @@
               <div class="dashboard-content-top-left-item-top-title">
                 小时峰值分析
               </div>
-              <div
-                class="dashboard-content-top-left-item-top-time"
-                @click="showDatePicker(showTimeMsg.HourlyPeak)"
-              >
+              <div class="dashboard-content-top-left-item-top-time" @click="showDatePicker(showTimeMsg.HourlyPeak)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -21,13 +18,7 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading1"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading1" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww1" :option="hourlyPeakObj" />
             </div>
           </div>
@@ -36,10 +27,7 @@
               <div class="dashboard-content-top-left-item-top-title">
                 日趋势分析
               </div>
-              <div
-                class="dashboard-content-top-left-item-top-time"
-                @click="showDatePicker(showTimeMsg.WaybillTrend)"
-              >
+              <div class="dashboard-content-top-left-item-top-time" @click="showDatePicker(showTimeMsg.WaybillTrend)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -48,13 +36,7 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading2"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading2" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww12" :option="waybillTrendObj" />
             </div>
           </div>
@@ -63,10 +45,7 @@
               <div class="dashboard-content-top-left-item-top-title">
                 目的站统计分析
               </div>
-              <div
-                class="dashboard-content-bottom-left-top-time"
-                @click="showDatePicker(showTimeMsg.NodePeak)"
-              >
+              <div class="dashboard-content-bottom-left-top-time" @click="showDatePicker(showTimeMsg.NodePeak)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -75,26 +54,14 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading3"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading3" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww4" :option="nodePeakObj" />
             </div>
           </div>
         </div>
         <!-- 地图 -->
         <div class="dashboard-content-top-center">
-          <div
-            v-loading="loading4"
-            element-loading-text="数据加载中..."
-            element-loading-svg-view-box="-10, -10, 50, 50"
-            element-loading-background="rgba(0,0,0, 0.3)"
-            class="dashboard-content-top-center-top"
-          >
+          <div v-loading="loading4" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-center-top">
             <div class="dashboard-content-top-center-top-list">
               <div class="dashboard-content-top-center-top-list-txt">
                 今日计划航班数
@@ -120,99 +87,56 @@
               </div>
             </div>
           </div>
-          <div
-            v-loading="loading5"
-            element-loading-text="数据加载中..."
-            element-loading-svg-view-box="-10, -10, 50, 50"
-            element-loading-background="rgba(0,0,0, 0.3)"
-            class="dashboard-content-top-center-bottom"
-          >
+          <div v-loading="loading5" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-center-bottom">
             <div class="dashboard-content-top-center-bottom-title">
               航班动态跟踪
             </div>
             <div class="dashboard-content-top-center-bottom-content">
               <div class="dashboard-content-top-center-bottom-content-head">
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   公司/航班号
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   航班状态
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   经停/到达站
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   计划起飞
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   实际起飞
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   机型
                 </div>
-                <div
-                  class="dashboard-content-top-center-bottom-content-head-list"
-                >
+                <div class="dashboard-content-top-center-bottom-content-head-list">
                   类型
                 </div>
               </div>
               <div class="dashboard-content-top-center-bottom-content-bottom">
-                <vue3-seamless-scroll
-                  :list="listData"
-                  :hover-stop="true"
-                  :hover="true"
-                  :step="0.3"
-                >
-                  <div
-                    v-for="(item, index) in listData"
-                    :key="index"
-                    class="dashboard-content-top-center-bottom-content-bottom-list"
-                  >
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                <vue3-seamless-scroll :list="listData" :hover-stop="true" :hover="true" :step="0.3">
+                  <div v-for="(item, index) in listData" :key="index" class="dashboard-content-top-center-bottom-content-bottom-list">
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.flightNo }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.flightState }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.airport }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.planTime }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.acTime }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.planeType }}
                     </div>
-                    <div
-                      class="dashboard-content-top-center-bottom-content-bottom-list-txt"
-                    >
+                    <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">
                       {{ item.KHT }}
                     </div>
                   </div>
@@ -227,10 +151,7 @@
               <div class="dashboard-content-top-right-item-top-title">
                 航司统计分析
               </div>
-              <div
-                class="dashboard-content-top-right-item-top-time"
-                @click="showDatePicker(showTimeMsg.AirlineTraffic)"
-              >
+              <div class="dashboard-content-top-right-item-top-time" @click="showDatePicker(showTimeMsg.AirlineTraffic)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -239,13 +160,7 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading6"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-right-item-bottom"
-            >
+            <div v-loading="loading6" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-right-item-bottom">
               <Echarts id="a1" :option="airlineTrafficObj" />
             </div>
           </div>
@@ -254,10 +169,7 @@
               <div class="dashboard-content-top-right-item-top-title">
                 航班动态统计
               </div>
-              <div
-                class="dashboard-content-top-right-item-top-time"
-                @click="showDatePicker(showTimeMsg.AirlineAbnormal)"
-              >
+              <div class="dashboard-content-top-right-item-top-time" @click="showDatePicker(showTimeMsg.AirlineAbnormal)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -266,13 +178,7 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading7"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading7" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww44" :option="airlineObj" />
             </div>
           </div>
@@ -281,10 +187,7 @@
               <div class="dashboard-content-top-right-item-top-title">
                 拉货统计分析
               </div>
-              <div
-                class="dashboard-content-top-right-item-top-time"
-                @click="showDatePicker(showTimeMsg.PickingStatistics)"
-              >
+              <div class="dashboard-content-top-right-item-top-time" @click="showDatePicker(showTimeMsg.PickingStatistics)">
                 <el-icon color="#ffffff" size="18">
                   <Calendar />
                 </el-icon>
@@ -293,47 +196,20 @@
                 </el-icon>
               </div>
             </div>
-            <div
-              v-loading="loading8"
-              element-loading-text="数据加载中..."
-              element-loading-svg-view-box="-10, -10, 50, 50"
-              element-loading-background="rgba(0,0,0, 0.3)"
-              class="dashboard-content-top-left-item-bottom"
-            >
+            <div v-loading="loading8" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
               <Echarts id="ww45" :option="pickingObj" />
             </div>
           </div>
         </div>
       </div>
     </div>
-    <Dialog
-      :flag="flag"
-      msg-title="日期选择"
-      @resetForm="resetForm"
-      @submitForm="submitForm"
-    >
+    <Dialog :flag="flag" msg-title="日期选择" @resetForm="resetForm" @submitForm="submitForm">
       <el-form :model="form" label-width="120px">
         <el-form-item label="开始日期">
-          <el-date-picker
-            :disabled-date="disabledStartDate"
-            v-model="form.startDate"
-            type="date"
-            placeholder="请选择开始日期"
-            size="default"
-            format="YYYY-MM-DD"
-            value-format="YYYY-MM-DD"
-          />
+          <el-date-picker :disabled-date="disabledStartDate" v-model="form.startDate" type="date" placeholder="请选择开始日期" size="default" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
         </el-form-item>
         <el-form-item label="结束日期">
-          <el-date-picker
-            :disabled-date="disabledEndDate"
-            v-model="form.endDate"
-            type="date"
-            placeholder="请选择结束日期"
-            size="default"
-            format="YYYY-MM-DD"
-            value-format="YYYY-MM-DD"
-          />
+          <el-date-picker :disabled-date="disabledEndDate" v-model="form.endDate" type="date" placeholder="请选择结束日期" size="default" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
         </el-form-item>
       </el-form>
     </Dialog>
@@ -348,6 +224,7 @@ import ComHead from "./components/comHead.vue";
 import { Calendar, CaretBottom } from "@element-plus/icons-vue";
 import Dialog from "@/components/dialog/index.vue";
 import { usePublic, showTimeMsg } from "./hooks/usePublic";
+import nodeCode from "./hooks/nodeCode";
 import { parseTime, isValue } from "@/utils/validate";
 import * as _ from "lodash";
 const {
@@ -355,6 +232,7 @@ const {
   airCompaneBaggage,
   airlineAbnormalBaggage,
   getPublicData,
+  findData,
 } = usePublic();
 const timePickerName = ref<number>(0);
 const flag = ref<boolean>(false);
@@ -580,6 +458,12 @@ const airlineFunc = async () => {
     },
   ])) as any;
   if (listValues && isValue(listValues)) {
+    const res = findData(
+      nodeCode.internationalDeparture,
+      listValues,
+      "nodeCode",
+      "flightNum"
+    );
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption);
     (newObj.dataZoom = [
       {
@@ -588,14 +472,14 @@ const airlineFunc = async () => {
         xAxisIndex: [0],
         filterMode: "filter",
         start: 0,
-        end: 20,
+        end: 40,
       },
     ]),
-      listValues.forEach((item) => {
-        item.jobTime = NODE_CODE[item["nodeCode"]] ?? item["nodeCode"];
+      res.forEach((item) => {
+        item.jobTime = item["name"] ?? item["nodeCode"];
         item.weight = item["flightNum"];
       });
-    airlineObj.value = pubFunc(listValues, newObj);
+    airlineObj.value = pubFunc(res, newObj);
   }
   loading7.value = false;
 };