Browse Source

修改权限

zhaoke 2 years ago
parent
commit
0300706024

+ 2 - 2
public/index.html

@@ -5,10 +5,10 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
     <!-- <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline'"> -->
-    <meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-eval'; script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline'" />
+    <!-- <meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-eval'; script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline'" />
     <meta http-equiv="X-Content-Security-Policy" content="default-src 'self' 'unsafe-eval'; script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline'" />
     <meta http-equiv="X-XSS-Protection" content="1;mode=block" />
-    <meta http-equiv="X-Content-Type-Options" content="nosniff" />
+    <meta http-equiv="X-Content-Type-Options" content="nosniff" /> -->
     <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
     <title><%= webpackConfig.name %></title>
     <script src="<%= BASE_URL %>configLoader.js" type="text/javascript"></script>

+ 193 - 193
src/router/routes/routes-file-five.js

@@ -5,289 +5,289 @@
  * @LastEditors: your name
  * @Description: 离港路由
  */
-import Layout from '@/layout'
+import Layout from "@/layout";
 
 const departureRoutes = {
-  path: '/departure',
-  name: 'departure',
+  path: "/departure",
+  name: "departure",
   component: Layout,
-  meta: { roles: ['departure_menu'] },
+  meta: { roles: ["departure_menu"] },
   children: [
     {
-      path: '/departure',
-      component: () => import('@/views/baggageManagement'),
+      path: "/departure",
+      component: () => import("@/views/baggageManagement"),
       meta: {
-        title: '离港管理',
-        imgstyle: 'ic_list_nav_leave_default.png',
-        imgstyleup: 'ic_list_nav_leave_check.png'
+        title: "离港管理",
+        imgstyle: "ic_list_nav_leave_default.png",
+        imgstyleup: "ic_list_nav_leave_check.png",
       },
       children: [
         {
-          path: '/departure',
-          name: 'DepartureOne',
-          component: () => import('@/views/baggageManagement'),
+          path: "/departure",
+          name: "DepartureOne",
+          component: () => import("@/views/baggageManagement"),
           meta: {
-            title: '离港视图',
+            title: "离港视图",
             // title: "行李视图",
-            roles: ['departure_page'],
-            keepAlive: true
+            roles: ["departure_page"],
+            keepAlive: true,
           },
           children: [
             {
-              path: '/departure',
-              name: 'DepartureTerminalView',
-              component: () => import('@/views/baggageManagement/components/departure'),
-              meta: { keepAlive: true }
+              path: "/departure",
+              name: "DepartureTerminalView",
+              component: () => import("@/views/baggageManagement/components/departure"),
+              meta: { keepAlive: true },
             },
             {
-              path: '/departure/flightView',
-              name: 'DepartureParentSem',
-              component: () => import('@/views/baggageManagement'),
-              meta: { title: '航班视图', keepAlive: true },
+              path: "/departure/flightView",
+              name: "DepartureParentSem",
+              component: () => import("@/views/baggageManagement"),
+              meta: { title: "航班视图", keepAlive: true },
               children: [
                 {
-                  path: '/departure/flightView',
-                  name: 'DepartureFlightView',
-                  component: () => import('@/views/baggageManagement/components/departure/flight'),
-                  meta: { keepAlive: true }
+                  path: "/departure/flightView",
+                  name: "DepartureFlightView",
+                  component: () => import("@/views/baggageManagement/components/departure/flight"),
+                  meta: { keepAlive: true },
                 },
                 {
-                  path: '/departure/baggageView',
-                  name: 'DepartureBaggageView',
-                  component: () => import('@/views/baggageManagement/components/departure/baggage'),
-                  meta: { title: '行李视图', keepAlive: true }
+                  path: "/departure/baggageView",
+                  name: "DepartureBaggageView",
+                  component: () => import("@/views/baggageManagement/components/departure/baggage"),
+                  meta: { title: "行李视图", keepAlive: true },
                 },
                 {
-                  path: '/departure/containerView',
-                  name: 'DepartureContainerView',
-                  component: () => import('@/views/baggageManagement/components/departure/container'),
-                  meta: { title: '容器视图', keepAlive: true }
-                }
-              ]
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}
+                  path: "/departure/containerView",
+                  name: "DepartureContainerView",
+                  component: () => import("@/views/baggageManagement/components/departure/container"),
+                  meta: { title: "容器视图", keepAlive: true },
+                },
+              ],
+            },
+          ],
+        },
+      ],
+    },
+  ],
+};
 
 const arrivalRoutes = {
-  path: '/arrival',
-  name: 'arrival',
+  path: "/arrival",
+  name: "arrival",
   component: Layout,
-  meta: { roles: ['inbound_management'] },
+  meta: { roles: ["inbound_management"] },
   children: [
     {
-      path: '/arrival',
-      component: () => import('@/views/baggageManagement'),
+      path: "/arrival",
+      component: () => import("@/views/baggageManagement"),
       meta: {
-        title: '进港管理',
-        imgstyle: 'ic_list_nav_arrive_default.png',
-        imgstyleup: 'ic_list_nav_arrive_check.png'
+        title: "进港管理",
+        imgstyle: "ic_list_nav_arrive_default.png",
+        imgstyleup: "ic_list_nav_arrive_check.png",
       },
       children: [
         {
-          path: '/arrival',
-          name: 'ArrivalOne',
-          component: () => import('@/views/baggageManagement'),
-          meta: { title: '进港视图', roles: ['inbound_search_page'], keepAlive: true },
+          path: "/arrival",
+          name: "ArrivalOne",
+          component: () => import("@/views/baggageManagement"),
+          meta: { title: "进港视图", roles: ["inbound_search_page"], keepAlive: true },
           children: [
             {
-              path: '/arrival',
-              name: 'ArrivalTerminalView',
-              component: () => import('@/views/baggageManagement/components/arrival'),
-              meta: { keepAlive: true }
+              path: "/arrival",
+              name: "ArrivalTerminalView",
+              component: () => import("@/views/baggageManagement/components/arrival"),
+              meta: { keepAlive: true },
             },
             {
-              path: '/arrival/flightView',
-              name: 'ArrivalFlightTwo',
-              component: () => import('@/views/baggageManagement'),
-              meta: { title: '航班视图', keepAlive: true },
+              path: "/arrival/flightView",
+              name: "ArrivalFlightTwo",
+              component: () => import("@/views/baggageManagement"),
+              meta: { title: "航班视图", keepAlive: true },
               children: [
                 {
-                  path: '/arrival/flightView',
-                  name: 'ArrivalFlightView',
-                  component: () => import('@/views/baggageManagement/components/arrival/flight'),
-                  meta: { keepAlive: true }
+                  path: "/arrival/flightView",
+                  name: "ArrivalFlightView",
+                  component: () => import("@/views/baggageManagement/components/arrival/flight"),
+                  meta: { keepAlive: true },
                 },
                 {
-                  path: '/arrival/baggageView',
-                  name: 'ArrivalBaggageView',
-                  component: () => import('@/views/baggageManagement/components/arrival/baggage'),
-                  meta: { title: '行李视图', keepAlive: true }
+                  path: "/arrival/baggageView",
+                  name: "ArrivalBaggageView",
+                  component: () => import("@/views/baggageManagement/components/arrival/baggage"),
+                  meta: { title: "行李视图", keepAlive: true },
                 },
                 {
-                  path: '/arrival/containerView',
-                  name: 'ArrivalContainerView',
-                  component: () => import('@/views/baggageManagement/components/arrival/container'),
-                  meta: { title: '容器视图', keepAlive: true }
-                }
-              ]
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}
+                  path: "/arrival/containerView",
+                  name: "ArrivalContainerView",
+                  component: () => import("@/views/baggageManagement/components/arrival/container"),
+                  meta: { title: "容器视图", keepAlive: true },
+                },
+              ],
+            },
+          ],
+        },
+      ],
+    },
+  ],
+};
 
 const transferRoutes = {
-  path: '/transfer',
+  path: "/transfer",
   component: Layout,
-  meta: { roles: ['ti_showTransit'] },
+  meta: { roles: ["ti_showTransit"] },
   children: [
     {
-      path: '/transfer',
-      component: () => import('@/views/baggageManagement'),
+      path: "/transfer",
+      component: () => import("@/views/baggageManagement"),
       meta: {
-        title: '中转管理',
-        imgstyle: 'ic_list_nav_transit_default.png',
-        imgstyleup: 'ic_list_nav_transit_check.png'
+        title: "中转管理",
+        imgstyle: "ic_list_nav_transit_default.png",
+        imgstyleup: "ic_list_nav_transit_check.png",
       },
-      redirect: '/transfer/arrival',
+      redirect: "/transfer/arrival",
       children: [
         {
-          path: '/transfer/arrival',
-          name: 'TransferArrivalOne',
-          component: () => import('@/views/baggageManagement'),
-          meta: { title: '中转进港', roles: ['transit_inbound_page'], keepAlive: true },
+          path: "/transfer/arrival",
+          name: "TransferArrivalOne",
+          component: () => import("@/views/baggageManagement"),
+          meta: { title: "中转进港", roles: ["transit_inbound_page"], keepAlive: true },
           children: [
             {
-              path: '/transfer/arrival',
-              name: 'TransferArrivalTerminalView',
-              component: () => import('@/views/baggageManagement/components/transferArrival'),
-              meta: { keepAlive: true }
+              path: "/transfer/arrival",
+              name: "TransferArrivalTerminalView",
+              component: () => import("@/views/baggageManagement/components/transferArrival"),
+              meta: { keepAlive: true },
             },
             {
-              path: '/transfer/arrival/flightView',
-              name: 'TransferArrivalTwo',
-              component: () => import('@/views/baggageManagement'),
-              meta: { title: '航班视图', keepAlive: true },
+              path: "/transfer/arrival/flightView",
+              name: "TransferArrivalTwo",
+              component: () => import("@/views/baggageManagement"),
+              meta: { title: "航班视图", keepAlive: true },
               children: [
                 {
-                  path: '/transfer/arrival/flightView',
-                  name: 'TransferArrivalFlightView',
-                  component: () => import('@/views/baggageManagement/components/transferArrival/flight'),
-                  meta: { keepAlive: true }
+                  path: "/transfer/arrival/flightView",
+                  name: "TransferArrivalFlightView",
+                  component: () => import("@/views/baggageManagement/components/transferArrival/flight"),
+                  meta: { keepAlive: true },
                 },
                 {
-                  path: '/transfer/arrival/baggageView',
-                  name: 'TransferArrivalBaggageView',
-                  component: () => import('@/views/baggageManagement/components/transferArrival/baggage'),
-                  meta: { title: '行李视图', keepAlive: true }
+                  path: "/transfer/arrival/baggageView",
+                  name: "TransferArrivalBaggageView",
+                  component: () => import("@/views/baggageManagement/components/transferArrival/baggage"),
+                  meta: { title: "行李视图", keepAlive: true },
                 },
                 {
-                  path: '/transfer/arrival/containerView',
-                  name: 'TransferArrivalContainerView',
-                  component: () => import('@/views/baggageManagement/components/transferArrival/container'),
-                  meta: { title: '容器视图', keepAlive: true }
-                }
-              ]
-            }
-          ]
+                  path: "/transfer/arrival/containerView",
+                  name: "TransferArrivalContainerView",
+                  component: () => import("@/views/baggageManagement/components/transferArrival/container"),
+                  meta: { title: "容器视图", keepAlive: true },
+                },
+              ],
+            },
+          ],
         },
         {
-          path: '/transfer/departure',
-          name: 'TransferDepartureOne',
-          component: () => import('@/views/baggageManagement'),
-          meta: { title: '中转离港', roles: ['transit_departure_page'], keepAlive: true },
+          path: "/transfer/departure",
+          name: "TransferDepartureOne",
+          component: () => import("@/views/baggageManagement"),
+          meta: { title: "中转离港", roles: ["transit_departure_page"], keepAlive: true },
           children: [
             {
-              path: '/transfer/departure',
-              name: 'TransferDepartureTerminalView',
-              component: () => import('@/views/baggageManagement/components/transferDeparture'),
-              meta: { keepAlive: true }
+              path: "/transfer/departure",
+              name: "TransferDepartureTerminalView",
+              component: () => import("@/views/baggageManagement/components/transferDeparture"),
+              meta: { keepAlive: true },
             },
             {
-              path: '/transfer/departure/flightView',
-              name: 'TransferDepartureTwo',
-              component: () => import('@/views/baggageManagement'),
-              meta: { title: '航班视图', keepAlive: true },
+              path: "/transfer/departure/flightView",
+              name: "TransferDepartureTwo",
+              component: () => import("@/views/baggageManagement"),
+              meta: { title: "航班视图", keepAlive: true },
               children: [
                 {
-                  path: '/transfer/departure/flightView',
-                  name: 'TransferDepartureFlightView',
-                  component: () => import('@/views/baggageManagement/components/transferDeparture/flight'),
-                  meta: { keepAlive: true }
+                  path: "/transfer/departure/flightView",
+                  name: "TransferDepartureFlightView",
+                  component: () => import("@/views/baggageManagement/components/transferDeparture/flight"),
+                  meta: { keepAlive: true },
                 },
                 {
-                  path: '/transfer/departure/baggageView',
-                  name: 'TransferDepartureBaggageView',
-                  component: () => import('@/views/baggageManagement/components/transferDeparture/baggage'),
-                  meta: { title: '行李视图', keepAlive: true }
+                  path: "/transfer/departure/baggageView",
+                  name: "TransferDepartureBaggageView",
+                  component: () => import("@/views/baggageManagement/components/transferDeparture/baggage"),
+                  meta: { title: "行李视图", keepAlive: true },
                 },
                 {
-                  path: '/transfer/departure/containerView',
-                  name: 'TransferDepartureContainerView',
-                  component: () => import('@/views/baggageManagement/components/transferDeparture/container'),
-                  meta: { title: '容器视图', keepAlive: true }
-                }
-              ]
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}
+                  path: "/transfer/departure/containerView",
+                  name: "TransferDepartureContainerView",
+                  component: () => import("@/views/baggageManagement/components/transferDeparture/container"),
+                  meta: { title: "容器视图", keepAlive: true },
+                },
+              ],
+            },
+          ],
+        },
+      ],
+    },
+  ],
+};
 
 // 高级查询
 const advanceRoutes = {
-  path: '/',
-  redirect: '/advance',
+  path: "/",
+  redirect: "/advance",
   component: Layout,
   children: [
     {
-      path: '/advance',
-      component: () => import('@/views/advancedQuery/index.vue'),
+      path: "/advance",
+      component: () => import("@/views/advancedQuery/index.vue"),
       meta: {
-        title: '高级查询',
-        imgstyle: 'ic_list_nav_search_default.png',
-        imgstyleup: 'ic_list_nav_search_check.png'
+        title: "高级查询",
+        imgstyle: "ic_list_nav_search_default.png",
+        imgstyleup: "ic_list_nav_search_check.png",
       },
       children: [
         {
-          path: '/advance',
-          name: 'AdvancedQuery',
-          component: () => import('@/views/advancedQuery/index.vue'),
-          meta: { title: '高级查询', isPage: 'advance_page', keepAlive: true },
+          path: "/advance",
+          name: "AdvancedQuery",
+          component: () => import("@/views/advancedQuery/index.vue"),
+          meta: { title: "高级查询", isPage: "advance_page", keepAlive: true },
           children: [
             {
-              path: '/advance',
-              name: 'AdvancedHome',
-              component: () => import('@/views/advancedQuery/views/advancedHome.vue'),
-              meta: { keepAlive: true }
+              path: "/advance",
+              name: "AdvancedHome",
+              component: () => import("@/views/advancedQuery/views/advancedHome.vue"),
+              meta: { keepAlive: true },
             },
             {
-              path: 'advanceNew',
-              name: 'AdvancedNew',
-              component: () => import('@/views/advancedQuery/views/advancedNew.vue'),
-              meta: { keepAlive: true }
+              path: "advanceNew",
+              name: "AdvancedNew",
+              component: () => import("@/views/advancedQuery/views/advancedNew.vue"),
+              meta: { keepAlive: true },
             },
             {
-              path: 'flightView',
-              name: 'AdvancedFlight',
-              component: () => import('@/views/advancedQuery/views/advancedFlight.vue'),
-              meta: { title: '航班视图', keepAlive: true }
+              path: "flightView",
+              name: "AdvancedFlight",
+              component: () => import("@/views/advancedQuery/views/advancedFlight.vue"),
+              meta: { title: "航班视图", keepAlive: true },
             },
             {
-              path: 'baggageView',
-              name: 'AdvancedBag',
-              component: () => import('@/views/advancedQuery/views/advancedBag.vue'),
-              meta: { title: '行李视图', keepAlive: true }
+              path: "baggageView",
+              name: "AdvancedBag",
+              component: () => import("@/views/advancedQuery/views/advancedBag.vue"),
+              meta: { title: "行李视图", keepAlive: true },
             },
             {
-              path: 'containerView',
-              name: 'AdvancedContainer',
-              component: () => import('@/views/advancedQuery/views/advancedContainer.vue'),
-              meta: { title: '容器视图', keepAlive: true }
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}
+              path: "containerView",
+              name: "AdvancedContainer",
+              component: () => import("@/views/advancedQuery/views/advancedContainer.vue"),
+              meta: { title: "容器视图", keepAlive: true },
+            },
+          ],
+        },
+      ],
+    },
+  ],
+};
 
-export default [departureRoutes, arrivalRoutes, transferRoutes, advanceRoutes]
+export default [departureRoutes, arrivalRoutes, transferRoutes, advanceRoutes];

+ 1 - 1
src/router/routes/routes-file-four.js

@@ -226,7 +226,7 @@ const accountGroupRoutes = {
             },
           },
           redirect: "/",
-          meta: { title: "账号组管理", isPage: "role_page", keepAlive: false },
+          meta: { title: "账号组管理", keepAlive: false },
           children: [
             {
               path: "/",

+ 116 - 109
src/router/routes/routes-file-one.js

@@ -1,93 +1,101 @@
-import Layout from '@/layout'
+import Layout from "@/layout";
 const BasicsDataRoutes = {
-  path: '/BasicsData',
+  path: "/BasicsData",
   component: Layout,
-  meta: { roles: ['basicData'], keepAlive: false },
+  meta: { roles: ["basicData"], keepAlive: false },
   children: [
     {
-      path: '/BasicsData',
-      name: 'BasicsData',
-      component: () => import('@/views/BasicsData/index'),
-      meta: { title: '基础数据', icon: 'BasicsData', imgstyle: 'ic_setting_nav_default.png', imgstyleup: 'ic_setting_nav_check.png', keepAlive: false },
+      path: "/BasicsData",
+      name: "BasicsData",
+      component: () => import("@/views/BasicsData/index"),
+      meta: { title: "基础数据", icon: "BasicsData", imgstyle: "ic_setting_nav_default.png", imgstyleup: "ic_setting_nav_check.png", keepAlive: false },
       children: [
         {
-          path: '/BasicsData',
-          name: 'airportCompanyInfo',
-          component: () => import('@/views/BasicsData/views/airportCompany'),
-          meta: { title: '机场所属公司', keepAlive: false },
+          path: "/BasicsData",
+          name: "airportCompanyInfo",
+          component: () => import("@/views/BasicsData/views/airportCompany"),
+          meta: { title: "机场所属公司", roles: ["airport_company"], keepAlive: false },
           hidden: true,
-          src: require('@/assets/nav/ic_data_top_default @2x.png'),
-          srcer: require('@/assets/nav/ic_data_top_check@2x.png')
+          src: require("@/assets/nav/ic_data_top_default @2x.png"),
+          srcer: require("@/assets/nav/ic_data_top_check@2x.png"),
         },
         // 权限airline_information_page导致航司信息维护不显示
         {
-          path: '/BasicsData/airlineCompanyInfo',
-          name: 'airlineCompanyInfo',
-          component: () => import('@/views/BasicsData/views/airlineCompany/airlineCompanyInfo'),
-          meta: { title: '航司信息维护', keepAlive: false, roles: ['airline_information_page'] },
+          path: "/BasicsData/airlineCompanyInfo",
+          name: "airlineCompanyInfo",
+          component: () => import("@/views/BasicsData/views/airlineCompany/airlineCompanyInfo"),
+          meta: { title: "航司信息维护", keepAlive: false, roles: ["airline_information_page"] },
           hidden: true,
-          src: require('@/assets/nav/ic_data_top_default @2x.png'),
-          srcer: require('@/assets/nav/ic_data_top_check@2x.png')
+          src: require("@/assets/nav/ic_data_top_default @2x.png"),
+          srcer: require("@/assets/nav/ic_data_top_check@2x.png"),
         },
         {
-          path: '/BasicsData/airportInfo',
-          name: 'airportInfo',
-          component: { render(c) { return c('router-view') } },
-          redirect: '/BasicsData/airportInfo',
-          meta: { title: '机场信息维护', keepAlive: false },
+          path: "/BasicsData/airportInfo",
+          name: "airportInfo",
+          component: {
+            render(c) {
+              return c("router-view");
+            },
+          },
+          redirect: "/BasicsData/airportInfo",
+          meta: { title: "机场信息维护", roles: ["airport_information_maintenance_page"], keepAlive: false },
           hidden: true,
-          src: require('@/assets/nav/ic_data_top_default @2x.png'),
-          srcer: require('@/assets/nav/ic_data_top_check@2x.png'),
+          src: require("@/assets/nav/ic_data_top_default @2x.png"),
+          srcer: require("@/assets/nav/ic_data_top_check@2x.png"),
           children: [
             {
-              path: '/BasicsData/airportInfo',
-              component: () => import('@/views/BasicsData/views/airport/airportInfo'),
-              meta: { title: '机场信息维护', keepAlive: false },
+              path: "/BasicsData/airportInfo",
+              component: () => import("@/views/BasicsData/views/airport/airportInfo"),
+              meta: { title: "机场信息维护", keepAlive: false },
             },
             {
-              path: '/BasicsData/airportInfoDetails',
-              name: 'airportInfoDetails',
-              component: () => import('@/views/BasicsData/views/airport/airportInfoDetails'),
-              meta: { title: '基本信息', keepAlive: false },
+              path: "/BasicsData/airportInfoDetails",
+              name: "airportInfoDetails",
+              component: () => import("@/views/BasicsData/views/airport/airportInfoDetails"),
+              meta: { title: "基本信息", keepAlive: false },
               hidden: false,
               isAlone: true,
-              src: require('@/assets/nav/ic_setting_top@2x.png')
+              src: require("@/assets/nav/ic_setting_top@2x.png"),
             },
             {
-              path: '/BasicsData/airportInfoChild',
-              name: 'airportInfoChild',
-              component: () => import('@/views/BasicsData/views/airport/airportInfoChild'),
-              meta: { title: '航站设置', keepAlive: false },
+              path: "/BasicsData/airportInfoChild",
+              name: "airportInfoChild",
+              component: () => import("@/views/BasicsData/views/airport/airportInfoChild"),
+              meta: { title: "航站设置", keepAlive: false },
               hidden: false,
               isAlone: true,
-              src: require('@/assets/nav/ic_setting_top@2x.png')
-            }
-          ]
+              src: require("@/assets/nav/ic_setting_top@2x.png"),
+            },
+          ],
         },
         {
-          path: '/BasicsData/deployNode',
-          name: 'deployNode',
-          component: { render(c) { return c('router-view') } },
-          meta: { title: '节点信息维护', keepAlive: false },
+          path: "/BasicsData/deployNode",
+          name: "deployNode",
+          component: {
+            render(c) {
+              return c("router-view");
+            },
+          },
+          meta: { title: "节点信息维护", roles: ["node_information_maintenance"], keepAlive: false },
           hidden: true,
-          src: require('@/assets/nav/ic_data_top_default @2x.png'),
-          srcer: require('@/assets/nav/ic_data_top_check@2x.png'),
+          src: require("@/assets/nav/ic_data_top_default @2x.png"),
+          srcer: require("@/assets/nav/ic_data_top_check@2x.png"),
           children: [
             {
-              path: '/BasicsData/deployNode',
-              component: () => import('@/views/BasicsData/views/deployNode/deployNodeHome'),
-              meta: { title: '节点信息维护', keepAlive: false },
+              path: "/BasicsData/deployNode",
+              component: () => import("@/views/BasicsData/views/deployNode/deployNodeHome"),
+              meta: { title: "节点信息维护", keepAlive: false },
             },
             {
-              path: '/BasicsData/deployNodeChild',
-              name: 'deployNodeChild',
-              component: () => import('@/views/BasicsData/views/deployNode/deployNodeChild'),
-              meta: { title: '节点设置', keepAlive: false },
+              path: "/BasicsData/deployNodeChild",
+              name: "deployNodeChild",
+              component: () => import("@/views/BasicsData/views/deployNode/deployNodeChild"),
+              meta: { title: "节点设置", keepAlive: false },
               hidden: false,
               isAlone: true,
-              src: require('@/assets/nav/ic_setting_top@2x.png')
-            }
-          ]
+              src: require("@/assets/nav/ic_setting_top@2x.png"),
+            },
+          ],
         },
         // {
         //   path: '/BasicsData/warningSet',
@@ -114,13 +122,13 @@ const BasicsDataRoutes = {
         //   ]
         // },
         {
-          path: '/BasicsData/BaggageType',
-          name: 'BaggageType',
-          component: () => import('@/views/BasicsData/views/BaggageType/BaggageType'),
-          meta: { title: '特殊行李维护', keepAlive: false },
+          path: "/BasicsData/BaggageType",
+          name: "BaggageType",
+          component: () => import("@/views/BasicsData/views/BaggageType/BaggageType"),
+          meta: { title: "特殊行李维护", roles: ["special_baggage_maintenance_page"], keepAlive: false },
           hidden: true,
-          src: require('@/assets/nav/ic_data_top_default @2x.png'),
-          srcer: require('@/assets/nav/ic_data_top_check@2x.png')
+          src: require("@/assets/nav/ic_data_top_default @2x.png"),
+          srcer: require("@/assets/nav/ic_data_top_check@2x.png"),
         },
         // {
         //   path: '/BasicsData/airportChild',
@@ -131,72 +139,71 @@ const BasicsDataRoutes = {
         //   isAlone: true,
         //   src: require('@/assets/nav/ic_setting_top@2x.png')
         // }
-      ]
-    }
-  ]
-}
+      ],
+    },
+  ],
+};
 
 const departureRoutesC = {
-  path: '/departureC',
-  name: 'departureCParent',
+  path: "/departureC",
+  name: "departureCParent",
   component: Layout,
-  meta: { roles: ['departure_menu_tmp'] },
+  meta: { roles: ["departure_menu_tmp"] },
   children: [
     {
-      path: '/departureC',
-      component: () => import('@/views/baggageManagement'),
+      path: "/departureC",
+      component: () => import("@/views/baggageManagement"),
       meta: {
-        title: '离港管理',
-        imgstyle: 'ic_list_nav_leave_default.png',
-        imgstyleup: 'ic_list_nav_leave_check.png'
+        title: "离港管理",
+        imgstyle: "ic_list_nav_leave_default.png",
+        imgstyleup: "ic_list_nav_leave_check.png",
       },
       children: [
         {
-          path: '/departureC',
-          name: 'DepartureParent',
-          component: () => import('@/views/baggageManagement'),
+          path: "/departureC",
+          name: "DepartureParent",
+          component: () => import("@/views/baggageManagement"),
           meta: {
-            title: '离港视图',
+            title: "离港视图",
             // title: "行李视图",
-            roles: ['departure_page'],
-            keepAlive: true
+            roles: ["departure_page"],
+            keepAlive: true,
           },
           children: [
             {
-              path: '/departureC',
-              name: 'departureC',
-              component: () => import('@/views/baggageManagement/components/departureC'),
-              meta: { keepAlive: true }
+              path: "/departureC",
+              name: "departureC",
+              component: () => import("@/views/baggageManagement/components/departureC"),
+              meta: { keepAlive: true },
             },
             {
-              path: '/departureC/flightView',
-              name: 'DepartureTwo',
-              component: () => import('@/views/baggageManagement'),
-              meta: { title: '航班视图', keepAlive: true },
+              path: "/departureC/flightView",
+              name: "DepartureTwo",
+              component: () => import("@/views/baggageManagement"),
+              meta: { title: "航班视图", keepAlive: true },
               children: [
                 {
-                  path: '/departureC/flightView',
-                  name: 'departureCFlightView',
-                  component: () => import('@/views/baggageManagement/components/departureC/flight'),
-                  meta: { keepAlive: true }
+                  path: "/departureC/flightView",
+                  name: "departureCFlightView",
+                  component: () => import("@/views/baggageManagement/components/departureC/flight"),
+                  meta: { keepAlive: true },
                 },
                 {
-                  path: '/departureC/baggageView',
-                  name: 'departureCBaggageView',
-                  component: () => import('@/views/baggageManagement/components/departureC/baggage'),
-                  meta: { title: '行李视图', keepAlive: true }
-                }
-              ]
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}
-
+                  path: "/departureC/baggageView",
+                  name: "departureCBaggageView",
+                  component: () => import("@/views/baggageManagement/components/departureC/baggage"),
+                  meta: { title: "行李视图", keepAlive: true },
+                },
+              ],
+            },
+          ],
+        },
+      ],
+    },
+  ],
+};
 
 export default [
   // departureRoutesC,
-  BasicsDataRoutes
-]
+  BasicsDataRoutes,
+];

+ 4 - 4
src/views/accountGroupManagement/components/accountHome.vue

@@ -4,8 +4,8 @@
       <div class="status flex-wrap">
         <div class="manageTitle">账号组管理</div>
       </div>
-      <Search :is-slot="true" :is-title="false" @getSearchData="getSearchData" @clearSearchData="clearSearchData">
-        <el-button class="btnAdd" @click="addAccount">新增</el-button>
+      <Search v-is="['account_grou_search']" :is-slot="true" :is-title="false" @getSearchData="getSearchData" @clearSearchData="clearSearchData">
+        <el-button v-is="['add_account_group']" class="btnAdd" @click="addAccount">新增</el-button>
       </Search>
     </div>
     <div class="content-box scrollbar">
@@ -18,9 +18,9 @@
                 <div class="nameBox flex">
                   <div class="flex-wrap">
                     <div class="name">{{ account.user_group_name }}</div>
-                    <div class="loger" @click="toEdit(account)" />
+                    <div v-is="['account_group_editing']" class="loger" @click="toEdit(account)" />
                   </div>
-                  <div class="del" @click="deleteUser(account)">
+                  <div v-is="['account_group_deletion']" class="del" @click="deleteUser(account)">
                     <i class="el-icon-close" />
                   </div>
                 </div>

+ 4 - 4
src/views/accountManagement/components/accountHome.vue

@@ -8,7 +8,7 @@
         <div class="status3"><span class="icon" />禁用</div>
       </div>
       <Search :is-slot="true" :is-title="false" @getSearchData="getSearchData" @clearSearchData="clearSearchData">
-        <el-button class="btnAdd" @click="addAccount">新增</el-button>
+        <el-button v-is="['userlist_btn_add']" class="btnAdd" @click="addAccount">新增</el-button>
       </Search>
     </div>
     <div class="flex-wrap">
@@ -25,10 +25,10 @@
                   <div class="nameBox flex">
                     <div class="flex-wrap">
                       <div class="name">{{ account.user_name }}</div>
-                      <div class="loger" @click="toEdit(account.user_id)" />
+                      <div v-is="['userlist_btn_update']" class="loger" @click="toEdit(account.user_id)" />
                       <div v-is="['account_authorization_button']" @click="authAccount(account)" class="loger cap-auth"></div>
                     </div>
-                    <div class="del" @click="deleteUser(account)">
+                    <div v-is="['userlist_btn_del']" class="del" @click="deleteUser(account)">
                       <i class="el-icon-close" />
                     </div>
                   </div>
@@ -51,7 +51,7 @@
                       状态:<span v-if="account.user_status == 1 || account.user_status == 2" class="used">启用</span>
                       <span v-else class="unUsed">停用</span>
                     </el-col>
-                    <el-col v-is="['userlist_btn_status_change', 'admin']" :span="12" class="flexLeft">
+                    <el-col v-is="['userlist_btn_status_change']" :span="12" class="flexLeft">
                       <el-switch v-model="account.Flag" :active-value="true" :inactive-value="false" active-color="#2D67E3" inactive-color="#CFD6E2" @change="userActiveToggle(account)" />
                     </el-col>
                   </el-row>

+ 103 - 118
src/views/authorityManagement/components/authorityHome.vue

@@ -29,7 +29,16 @@
           <div class="grid-content">
             <div class="manageTitle">权限树</div>
             <div class="contentTree">
-              <el-tree ref="tree" :data="dataListTree" :props="defaultProps" node-key="auth_id" :filter-node-method="filterNode" highlight-current :default-expanded-keys="[currentKey]" @node-click="handleNodeClick">
+              <el-tree
+                ref="tree"
+                :data="dataListTree"
+                :props="defaultProps"
+                node-key="auth_id"
+                :filter-node-method="filterNode"
+                highlight-current
+                :default-expanded-keys="[currentKey]"
+                @node-click="handleNodeClick"
+              >
               </el-tree>
             </div>
           </div>
@@ -55,7 +64,7 @@
                               {{ data.auth_name }}
                             </div>
                             <div v-if="data.auth_type > 0" class="icon">
-                              <el-tooltip v-is="['authtree_btn_edit_auth','authtree_btn_update_auth']" effect="dark" :content="`修改${data.auth_name}`" placement="bottom">
+                              <el-tooltip v-is="['authtree_btn_update_auth']" effect="dark" :content="`修改${data.auth_name}`" placement="bottom">
                                 <span @click="renderEdit(data)" class="cap cap-edit"></span>
                               </el-tooltip>
                             </div>
@@ -65,8 +74,7 @@
                               状态:<span :class="data.auth_status ? 'success' : 'error'">{{ data.auth_status ? "启用" : "禁用" }}</span>
                             </div>
                             <div v-is="['authtree_btn_state_swatch']" class="details-info">
-                              <el-switch v-model="data.auth_status" @click.stop.native @change="renderChange(data)" active-color="#2D67E3">
-                              </el-switch>
+                              <el-switch v-model="data.auth_status" @click.stop.native @change="renderChange(data)" active-color="#2D67E3"> </el-switch>
                             </div>
                           </div>
                         </div>
@@ -77,13 +85,7 @@
                       <!-- v-is="['authtree_btn_del_auth']" -->
                       <div v-is="['authtree_btn_del_auth']">
                         <div v-if="data.auth_type !== 0" @click.stop="onNodeClick(data)" class="info-close">
-                          <i class="icon el-icon-close" :class="
-                              data.auth_type === 1
-                                ? 'close1'
-                                : data.auth_type > 2
-                                ? 'close2'
-                                : ''
-                            "></i>
+                          <i class="icon el-icon-close" :class="data.auth_type === 1 ? 'close1' : data.auth_type > 2 ? 'close2' : ''"></i>
                         </div>
                       </div>
                     </div>
@@ -103,7 +105,8 @@
       <div class="airportInfoDialog">
         <div class="title del-title">删除权限</div>
         <div class="content del-content">
-          <span class="el-icon-error error r10"></span>是否确认删除<span class="error l10">{{ title }}</span>?
+          <span class="el-icon-error error r10"></span>是否确认删除<span class="error l10">{{ title }}</span
+          >?
         </div>
         <div class="foot Delfoot right t30">
           <el-button size="medium" class="r24" @click="remove" type="danger">删除</el-button>
@@ -123,22 +126,19 @@
             <div class="flex">
               <el-form-item label="权限类型" prop="auth_type">
                 <el-select size="medium" v-model="ruleForm.auth_type" placeholder="请选择">
-                  <el-option v-for="(item,index) in optionsType" :key="index" :label="item.label" :value="item.value">
-                  </el-option>
+                  <el-option v-for="(item, index) in optionsType" :key="index" :label="item.label" :value="item.value"> </el-option>
                 </el-select>
               </el-form-item>
               <el-form-item label="父级权限" prop="authParent">
                 <el-select size="medium" v-model="ruleForm.auth_id" placeholder="请选择">
-                  <el-option v-for="(item,index) in optionsParent" :key="index" :label="item.label" :value="item.value">
-                  </el-option>
+                  <el-option v-for="(item, index) in optionsParent" :key="index" :label="item.label" :value="item.value"> </el-option>
                 </el-select>
               </el-form-item>
             </div>
             <div class="flex-wrap">
               <el-form-item class="flex1" label="所属应用" prop="app_name">
-                <el-select style="display:block;" size="medium" v-model="ruleForm.app_name" placeholder="请选择">
-                  <el-option v-for="(item,index) in optionsApp" :key="index" :label="item.label" :value="item.value">
-                  </el-option>
+                <el-select style="display: block" size="medium" v-model="ruleForm.app_name" placeholder="请选择">
+                  <el-option v-for="(item, index) in optionsApp" :key="index" :label="item.label" :value="item.value"> </el-option>
                 </el-select>
               </el-form-item>
             </div>
@@ -164,19 +164,14 @@ import OrgTree from "@/layout/components/OrgTree";
 import Search from "@/layout/components/Search";
 import Dialog from "@/layout/components/Dialog";
 import NoData from "@/components/nodata";
-import {
-  UpdateAppStatus,
-  UpdateAuthStatus,
-  DeleteApp,
-  DeleteAuth,
-} from "@/api/apiAuthority";
-import { GeneralDataReception } from '@/api/dataIntegration'
+import { UpdateAppStatus, UpdateAuthStatus, DeleteApp, DeleteAuth } from "@/api/apiAuthority";
+import { GeneralDataReception } from "@/api/dataIntegration";
 import treeData from "../minixs/treeData";
 export default {
   name: "Authority",
   components: { OrgTree, Search, Dialog, NoData },
   mixins: [treeData],
-  data () {
+  data() {
     return {
       dataIndex: 1,
       dataNum: 0,
@@ -197,8 +192,8 @@ export default {
       },
       options: [],
       editDialogVisible: false,
-      editDialogTitle: '新增下级权限',
-      editType: 'add',
+      editDialogTitle: "新增下级权限",
+      editType: "add",
       delObj: {},
       ruleForm: {
         // 协议信息表单
@@ -210,30 +205,28 @@ export default {
         auth_type: "",
         app_name: "",
         app_id: "",
-        auth_status: true
+        auth_status: true,
       },
       rules: {
         // 协议信息表单验证
-        auth_name: [
-          { required: true, message: "请输入权限名称", trigger: "blur" },
-        ],
+        auth_name: [{ required: true, message: "请输入权限名称", trigger: "blur" }],
       },
       optionsType: [
         {
-          label: '前端权限',
-          value: 1
+          label: "前端权限",
+          value: 1,
         },
         {
-          label: 'API权限',
-          value: 2
+          label: "API权限",
+          value: 2,
         },
         {
-          label: '数据权限',
-          value: 3
-        }
+          label: "数据权限",
+          value: 3,
+        },
       ],
       optionsApp: [],
-      optionsParent: []
+      optionsParent: [],
     };
   },
   created: function () {
@@ -245,7 +238,7 @@ export default {
   },
   watch: {
     dataList: {
-      handler (val) {
+      handler(val) {
         this.dataListTree = [];
         this.dataListTree.push(_.cloneDeep(val));
       },
@@ -254,106 +247,98 @@ export default {
   },
   methods: {
     // 新增
-    addAuth () {
+    addAuth() {
       if (!this.currData) {
-        this.$message.error('请选择权限后再操作')
-        return false
+        this.$message.error("请选择权限后再操作");
+        return false;
       }
-      this.ruleForm = {}
-      this.optionsApp = []
-      this.optionsParent = []
-      this.editDialogTitle = '新增下级权限'
-      this.editDialogVisible = true
-      this.editType = 'add'
+      this.ruleForm = {};
+      this.optionsApp = [];
+      this.optionsParent = [];
+      this.editDialogTitle = "新增下级权限";
+      this.editDialogVisible = true;
+      this.editType = "add";
       this.optionsApp.push({
         label: this.currData.app_name,
-        value: this.currData.app_id
-      })
+        value: this.currData.app_id,
+      });
       this.optionsParent.push({
         label: this.currData.auth_name,
-        value: this.currData.auth_id
-      })
+        value: this.currData.auth_id,
+      });
     },
     //增删改
-    async changeAuth (obj, type) {
+    async changeAuth(obj, type) {
       const { code, message } = await GeneralDataReception({
         serviceId: SERVICE_ID.authScId,
-        dataContent: JSON.stringify(obj)
-      })
+        dataContent: JSON.stringify(obj),
+      });
       if (code == 0) {
-        this.$message.success(message)
-        this.getAuthTree()
+        this.$message.success(message);
+        this.getAuthTree();
       } else {
-        this.$message.error(message)
+        this.$message.error(message);
       }
-      if (type == 'form') {
-        this.resetForm('ruleForm')
-      } else if (type == 'del') {
-        this.flag = false
+      if (type == "form") {
+        this.resetForm("ruleForm");
+      } else if (type == "del") {
+        this.flag = false;
       }
     },
     // 重置
-    resetForm (formName) {
-      this.$refs[formName].resetFields()
-      this.editDialogVisible = false
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.editDialogVisible = false;
     },
     // 新增/编辑-确认
-    submitClickHandler () {
+    submitClickHandler() {
       this.$refs["ruleForm"].validate((valid) => {
         if (valid) {
-          if (this.editType == 'add') {
-            this.ruleForm.app_id = this.ruleForm.app_name
-            this.ruleForm.app_name = this.currData.app_name
-            this.ruleForm.auth_status = true
-            this.ruleForm.event = 1
+          if (this.editType == "add") {
+            this.ruleForm.app_id = this.ruleForm.app_name;
+            this.ruleForm.app_name = this.currData.app_name;
+            this.ruleForm.auth_status = true;
+            this.ruleForm.event = 1;
             if (this.ruleForm.auth_id) {
-              this.ruleForm.up_auth_id = this.ruleForm.auth_id
-              delete this.ruleForm.auth_id
+              this.ruleForm.up_auth_id = this.ruleForm.auth_id;
+              delete this.ruleForm.auth_id;
             }
-            this.changeAuth(this.ruleForm, 'form')
+            this.changeAuth(this.ruleForm, "form");
           } else {
-            this.ruleForm.event = 2
-            this.changeAuth(this.ruleForm, 'form')
+            this.ruleForm.event = 2;
+            this.changeAuth(this.ruleForm, "form");
           }
         } else {
-          return false
+          return false;
         }
       });
     },
     //树点击
-    handleNodeClick (data) {
-      console.log(data)
+    handleNodeClick(data) {
+      console.log(data);
       const dataNew = _.cloneDeep(data);
       this.currData = dataNew;
       this.currDataArrId = dataNew.auth_id;
       this.currDataArr = [];
       this.childrenData = [];
       this.currDataArr = this.decompose(this.dataArr, "auth_id", dataNew.auth_id);
-      this.childrenData = this.decompose(
-        this.dataArr,
-        "up_auth_id",
-        dataNew.auth_id
-      );
+      this.childrenData = this.decompose(this.dataArr, "up_auth_id", dataNew.auth_id);
     },
     //下级卡片点击
-    childrenClick (data) {
+    childrenClick(data) {
       const dataNew = _.cloneDeep(data);
       this.currData = dataNew;
       this.currDataArrId = dataNew.auth_id;
       this.currDataArr = [];
       this.childrenData = [];
       this.currDataArr = this.decompose(this.dataArr, "auth_id", dataNew.auth_id);
-      this.childrenData = this.decompose(
-        this.dataArr,
-        "up_auth_id",
-        dataNew.auth_id
-      );
+      this.childrenData = this.decompose(this.dataArr, "up_auth_id", dataNew.auth_id);
       console.log(this.childrenData);
       this.$refs.tree.setCurrentKey(dataNew.auth_id);
       this.currentKey = dataNew.auth_id;
     },
     //下级关闭
-    childrenRenderChange (data) {
+    childrenRenderChange(data) {
       try {
         tissueTreeStart({
           OrganId: OrganId,
@@ -373,33 +358,33 @@ export default {
         this.childrenData[index].flag = !flag;
       }
     },
-    filterNode (value, data) {
+    filterNode(value, data) {
       if (!value) return true;
       return data.AuthName.indexOf(value) !== -1;
     },
     // 添加应用
-    renderAdd () {
+    renderAdd() {
       this.$router.push("/authority/appAdd");
     },
     // 修改权限
-    renderEdit (data) {
-      this.optionsApp = []
-      this.optionsParent = []
+    renderEdit(data) {
+      this.optionsApp = [];
+      this.optionsParent = [];
       this.editDialogVisible = true;
-      this.editDialogTitle = '编辑下级权限';
-      this.editType = 'edit';
+      this.editDialogTitle = "编辑下级权限";
+      this.editType = "edit";
       this.ruleForm = data;
       this.optionsApp.push({
         label: data.app_name,
-        value: data.app_id
-      })
+        value: data.app_id,
+      });
       this.optionsParent.push({
         label: this.currData.auth_name,
-        value: data.auth_id
-      })
+        value: data.auth_id,
+      });
     },
     // 权限树
-    renderSub (data) {
+    renderSub(data) {
       this.$router.push({
         path: "/authority/addPower",
         query: {
@@ -410,33 +395,33 @@ export default {
       });
     },
     // 关闭开启
-    renderChange (data) {
+    renderChange(data) {
       data.event = 2;
       this.changeAuth(data);
     },
     //删除
-    remove () {
-      this.delObj.event = 3
-      this.changeAuth(this.delObj, 'del')
-      this.childrenClick(this.delObj)
+    remove() {
+      this.delObj.event = 3;
+      this.changeAuth(this.delObj, "del");
+      this.childrenClick(this.delObj);
     },
     //查询
-    getSearchData (val) {
+    getSearchData(val) {
       this.$refs.tree.filter(val);
       // this.getAuthTree(val)
     },
     //清除查询
-    clearSearchData () {
+    clearSearchData() {
       this.getAuthTree();
     },
     //节点关闭按钮点击
-    onNodeClick (data) {
+    onNodeClick(data) {
       this.flag = true;
       this.title = data.auth_name;
       this.delObj = data;
     },
     //获取指定数据
-    decompose (value, key, id) {
+    decompose(value, key, id) {
       let data = _.cloneDeep(value);
       let arr = [];
       for (let i = 0; i < data.length; i++) {
@@ -448,7 +433,7 @@ export default {
     },
     //-----------获取数据------------
     //应用状态变更
-    async handleChange (data) {
+    async handleChange(data) {
       try {
         let res = null;
         if (type === 1) {
@@ -488,7 +473,7 @@ export default {
       }
     },
     //应用删除
-    async deleteApp (id) {
+    async deleteApp(id) {
       try {
         const res = await DeleteApp({
           AppId: id,
@@ -506,7 +491,7 @@ export default {
       }
     },
     //权限项删除
-    async deleteAuth (id) {
+    async deleteAuth(id) {
       try {
         const res = await DeleteAuth({
           AuthId: id,

+ 3 - 3
src/views/authorityManagement/components/authorityRoleHome.vue

@@ -16,7 +16,7 @@
         <div class="status2"><span class="icon"></span>不存在互斥</div> -->
       </div>
       <Search @getSearchData="getSearchData" @clearSearchData="clearSearchData" :isTitle="false" :isSlot="true">
-        <button @click="addRole" class="btnAdd">新增</button>
+        <button v-is="['role_add']" @click="addRole" class="btnAdd">新增</button>
       </Search>
     </div>
     <!--列表-->
@@ -31,11 +31,11 @@
                   <div class="info-avoutr">
                     <div class="msg flex-wrap">
                       <p :title="item.role_name" class="name">{{ item.role_name }}</p>
-                      <div @click="editRole(item)" class="cap cap-edit"></div>
+                      <div v-is="['role_edit']" @click="editRole(item)" class="cap cap-edit"></div>
                       <div v-is="['role_authorization_button']" @click="authRole(item)" class="cap cap-auth"></div>
                     </div>
                   </div>
-                  <div class="info-close">
+                  <div v-is="['role_delete']" class="info-close">
                     <i @click="checkRemove(item, index)" class="icon el-icon-close"></i>
                   </div>
                 </div>

+ 249 - 332
src/views/baggageManagement/components/arrival/index.vue

@@ -8,17 +8,8 @@
 <template>
   <div class="arrival-one">
     <!--功能区-表单-->
-    <div
-      ref="formWrap"
-      class="terminal-form-wrap"
-    >
-      <el-form
-        ref="form"
-        :inline="true"
-        :model="formData"
-        :rules="rules"
-        class="form"
-      >
+    <div ref="formWrap" class="terminal-form-wrap">
+      <el-form ref="form" :inline="true" :model="formData" :rules="rules" class="form">
         <div class="form-left">
           <el-form-item prop="currentAirport">
             <!-- <el-cascader
@@ -33,22 +24,8 @@
             filterable
             @change="setCurrentAirport"
           /> -->
-            <el-select
-              v-model="formData.currentAirport"
-              class="input-shadow"
-              size="small"
-              style="width: 150px;"
-              filterable
-              default-first-option
-              placeholder="请选择机场"
-              @change="airPortChange"
-            >
-              <el-option
-                v-for="(item, index) in AirportList"
-                :key="index"
-                :label="item.planLandingApt"
-                :value="item.planLandingApt"
-              />
+            <el-select v-model="formData.currentAirport" class="input-shadow" size="small" style="width: 150px" filterable default-first-option placeholder="请选择机场" @change="airPortChange">
+              <el-option v-for="(item, index) in AirportList" :key="index" :label="item.planLandingApt" :value="item.planLandingApt" />
             </el-select>
           </el-form-item>
           <!-- <el-form-item prop="startDate">
@@ -75,15 +52,12 @@
               @change="endDateChangeHandler"
             />
           </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;"
+              style="width: 300px"
               type="daterange"
               value-format="yyyy-MM-dd"
               start-placeholder="开始日期"
@@ -95,32 +69,18 @@
           <el-form-item>
             <div class="box-item">
               <p>预计装载总数:</p>
-              <li
-                v-for="(item, index) in orderNum"
-                :key="index"
-                :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }"
-              >
+              <li v-for="(item, index) in orderNum" :key="index" :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }">
                 <span v-if="!isNaN(item)">
                   <i ref="numberItem">0123456789</i>
                 </span>
-                <span
-                  v-else
-                  class="comma"
-                >{{ item }}</span>
+                <span v-else class="comma">{{ item }}</span>
               </li>
             </div>
           </el-form-item>
         </div>
-        <div
-          class="form-right"
-          @keyup.enter="onSubmit(1)"
-        >
+        <div class="form-right" @keyup.enter="onSubmit(1)">
           <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>
               <el-input
                 slot="reference"
@@ -137,43 +97,28 @@
             </el-popover>
           </el-form-item>
           <el-form-item>
-            <el-button
-              class="btn-shadow"
-              size="mini"
-              type="primary"
-              @click="onSubmit(1)"
-            >搜索</el-button>
+            <el-button class="btn-shadow" size="mini" type="primary" @click="onSubmit(1)">搜索</el-button>
           </el-form-item>
-          <el-form-item v-is="['is_timeIcon']">
+          <!-- <el-form-item v-is="['is_timeIcon']">
+            <TimeZoneSelector />
+          </el-form-item> -->
+          <el-form-item>
             <TimeZoneSelector />
           </el-form-item>
-          <el-form-item v-is="['is_columnSettings']">
-            <img
-              class="btn-img btn-shadow"
-              src="@/assets/baggage/ic_setting.png"
-              title="列设置"
-              @click="show"
-            >
+          <!-- <el-form-item v-is="['is_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
+          </el-form-item> -->
+          <el-form-item>
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
           </el-form-item>
           <el-form-item v-is="['dm_dt_columnSettings']">
-            <img
-              class="btn-img btn-shadow"
-              src="@/assets/baggage/ic_export.png"
-              title="导出"
-              @click="exportHandler('table', '航站进港列表')"
-            >
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站进港列表')" />
           </el-form-item>
         </div>
       </el-form>
     </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"
@@ -189,27 +134,10 @@
         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="childCol in col.children"
-            :key="childCol.prop"
-            :prop="childCol.prop"
-            :label="childCol.label"
-            :width="childCol.width"
-            :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">
+          <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>
-              <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]"
@@ -224,10 +152,7 @@
       </el-table>
     </div>
     <!--列设置-->
-    <Dialog
-      :flag="dialogFlag"
-      class="dialog-check-group"
-    >
+    <Dialog :flag="dialogFlag" class="dialog-check-group">
       <div class="dialog-wrapper">
         <div class="title">列设置</div>
         <div class="content">
@@ -239,23 +164,15 @@
             :default-expand-all="true"
             :props="{
               label: 'label',
-              children: 'children'
+              children: 'children',
             }"
             :default-checked-keys="checkedKeysTemp"
             @check="handleCheck"
           />
         </div>
         <div class="foot right t30">
-          <el-button
-            size="medium"
-            class="r24"
-            type="primary"
-            @click="onCheck"
-          >确定</el-button>
-          <el-button
-            size="medium"
-            @click="hide"
-          >取消</el-button>
+          <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
+          <el-button size="medium" @click="hide">取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -263,206 +180,206 @@
 </template>
 
 <script>
-import Dialog from '@/layout/components/Dialog'
-import TimeZoneSelector from '@/components/TimeZoneSelector'
-import terminalMixin from '../../mixins/terminal'
-import formMixin from '../../mixins/form'
-import tableColsMixin from '../../mixins/tableCols'
-import timeZoneMixin from '../../mixins/timeZone'
-import { getQuery } from '@/api/flight'
-import TableHeaderCell from '@/components/TableHeaderCell'
-import { setTableFilters, throttledExportToExcel } from '@/utils/table'
+import Dialog from "@/layout/components/Dialog";
+import TimeZoneSelector from "@/components/TimeZoneSelector";
+import terminalMixin from "../../mixins/terminal";
+import formMixin from "../../mixins/form";
+import tableColsMixin from "../../mixins/tableCols";
+import timeZoneMixin from "../../mixins/timeZone";
+import { getQuery } from "@/api/flight";
+import TableHeaderCell from "@/components/TableHeaderCell";
+import { setTableFilters, throttledExportToExcel } from "@/utils/table";
 
 export default {
-  name: 'DepartureTerminalView',
+  name: "DepartureTerminalView",
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
   data() {
     return {
-      orderNum: ['0', '0', '0', '0', '0', '0'], // 默认总数
+      orderNum: ["0", "0", "0", "0", "0", "0"], // 默认总数
       popoverVisible: false,
       // 初始表头
       tableCols: [
         {
-          prop: 'flightInfo',
-          label: '航班信息',
+          prop: "flightInfo",
+          label: "航班信息",
           width: 185,
-          fixed: 'left',
+          fixed: "left",
           children: [
             {
-              prop: 'flightNO',
-              label: '航班号',
-              desc: '指航班编号',
+              prop: "flightNO",
+              label: "航班号",
+              desc: "指航班编号",
               width: 80,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'flightDate',
-              label: '执飞日期',
-              desc: '指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)',
+              prop: "flightDate",
+              label: "执飞日期",
+              desc: "指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)",
               width: 105,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'arrivalTime',
-              label: '降落时间',
-              desc: '根据优先级别显示时间。优先级别:1.实际降落时间,2.预计降落时间,3.计划降落时间',
+              prop: "arrivalTime",
+              label: "降落时间",
+              desc: "根据优先级别显示时间。优先级别:1.实际降落时间,2.预计降落时间,3.计划降落时间",
               width: 150,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'departureAirport',
-              label: '起飞航站',
-              desc: '指航班执飞航段的起飞航站,以航站三字码显示',
+              prop: "departureAirport",
+              label: "起飞航站",
+              desc: "指航班执飞航段的起飞航站,以航站三字码显示",
               width: 85,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'arrivalTerminal',
-              label: '到达航站楼',
-              desc: '指航班执飞航段的目的航站的航站楼代码',
+              prop: "arrivalTerminal",
+              label: "到达航站楼",
+              desc: "指航班执飞航段的目的航站的航站楼代码",
               width: 100,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'luggageCarousel',
-              label: '行李转盘',
-              desc: '指航班进港,旅客提取行李转盘的代码',
+              prop: "luggageCarousel",
+              label: "行李转盘",
+              desc: "指航班进港,旅客提取行李转盘的代码",
               width: 85,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'parkingSpace',
-              label: '停机位',
-              desc: '指航班的停机位代码,数据是变化的,仅显示最新信息',
+              prop: "parkingSpace",
+              label: "停机位",
+              desc: "指航班的停机位代码,数据是变化的,仅显示最新信息",
               filterable: true,
-              sortable: true
-            }
-          ]
+              sortable: true,
+            },
+          ],
         },
         {
-          prop: 'originAirportBaggageInfo',
-          label: '始飞站行李信息',
+          prop: "originAirportBaggageInfo",
+          label: "始飞站行李信息",
           children: [
             {
-              prop: 'checkIns',
-              label: '值机',
-              desc: '指已办理值机托运的行李数量,含取消托运的行李数量,含未激活'
+              prop: "checkIns",
+              label: "值机",
+              desc: "指已办理值机托运的行李数量,含取消托运的行李数量,含未激活",
             },
             {
-              prop: 'projectedLoad',
-              label: '预计装载',
-              desc: '指已办理值机托运的行李数量,不含取消托运的行李数量,不包含未激活'
+              prop: "projectedLoad",
+              label: "预计装载",
+              desc: "指已办理值机托运的行李数量,不含取消托运的行李数量,不包含未激活",
             },
             {
-              prop: 'loadedQuantity',
-              label: '已装载',
-              desc: '指实际装机完成的行李数量,不包含取消托运的行李数量'
-            }
-          ]
+              prop: "loadedQuantity",
+              label: "已装载",
+              desc: "指实际装机完成的行李数量,不包含取消托运的行李数量",
+            },
+          ],
         },
         {
-          prop: 'arrvivalBaggageInfo',
-          label: '到达行李信息',
+          prop: "arrvivalBaggageInfo",
+          label: "到达行李信息",
           children: [
             {
-              prop: 'numberOfDestinationArrivals',
-              label: '到达',
-              desc: '指行李到达提取转盘的行李数量,数据是变化的,仅显示最新信息'
+              prop: "numberOfDestinationArrivals",
+              label: "到达",
+              desc: "指行李到达提取转盘的行李数量,数据是变化的,仅显示最新信息",
             },
             {
-              prop: 'endPointNotReached',
-              label: '未到达',
-              desc: '指行李仍未到达提取转盘的行李数量,数据是变化的,仅显示最新信息'
+              prop: "endPointNotReached",
+              label: "未到达",
+              desc: "指行李仍未到达提取转盘的行李数量,数据是变化的,仅显示最新信息",
             },
             {
-              prop: 'specialQuantity',
-              label: '特殊',
-              desc: '指非正常行李的数量,包括(装笼动物、乘务员行李、易碎行李、VIP 行李等),参考 BSM 报文.E 项',
-              width: 65
+              prop: "specialQuantity",
+              label: "特殊",
+              desc: "指非正常行李的数量,包括(装笼动物、乘务员行李、易碎行李、VIP 行李等),参考 BSM 报文.E 项",
+              width: 65,
             },
             {
-              prop: 'numberOfClaims',
-              label: '理赔',
-              desc: '指航班收到旅客申请理赔的行李数量',
-              width: 65
-            }
-          ]
+              prop: "numberOfClaims",
+              label: "理赔",
+              desc: "指航班收到旅客申请理赔的行李数量",
+              width: 65,
+            },
+          ],
         },
         {
-          prop: 'uninstallInfo',
-          label: '卸载状态',
+          prop: "uninstallInfo",
+          label: "卸载状态",
           children: [
             {
-              prop: 'uninstalled',
-              label: '已卸载',
-              desc: '指卸机的行李数量,数据是变化的,仅显示最新信息'
+              prop: "uninstalled",
+              label: "已卸载",
+              desc: "指卸机的行李数量,数据是变化的,仅显示最新信息",
             },
             {
-              prop: 'numberToBeUninstalled',
-              label: '待卸载',
-              desc: '指仍未卸机的行李数量,数据是变化的,仅显示最新信息'
-            }
-          ]
+              prop: "numberToBeUninstalled",
+              label: "待卸载",
+              desc: "指仍未卸机的行李数量,数据是变化的,仅显示最新信息",
+            },
+          ],
         },
         {
-          prop: 'terminationdBaggageInfo',
-          label: '终止行李',
+          prop: "terminationdBaggageInfo",
+          label: "终止行李",
           children: [
             {
-              prop: 'terminateArrivalQuantity',
-              label: '到达',
-              desc: '指旅客已到达目的站的行李数量,数据是变化的,仅显示最新信息'
+              prop: "terminateArrivalQuantity",
+              label: "到达",
+              desc: "指旅客已到达目的站的行李数量,数据是变化的,仅显示最新信息",
             },
             {
-              prop: 'terminateUnreachedQuantity',
-              label: '未到达',
-              desc: '指未到达目的站的行李数量,数据是变化的,仅显示最新信息'
-            }
-          ]
+              prop: "terminateUnreachedQuantity",
+              label: "未到达",
+              desc: "指未到达目的站的行李数量,数据是变化的,仅显示最新信息",
+            },
+          ],
         },
         {
-          prop: 'transferBaggageInfo',
-          label: '转运行李',
+          prop: "transferBaggageInfo",
+          label: "转运行李",
           children: [
             {
-              prop: 'quantityShipped',
-              label: '已转运',
-              desc: '指当前航班中转出的行李已完成转运的行李数量,数据是变化的,仅显示最新信息'
+              prop: "quantityShipped",
+              label: "已转运",
+              desc: "指当前航班中转出的行李已完成转运的行李数量,数据是变化的,仅显示最新信息",
             },
             {
-              prop: 'undeliveredQuantity',
-              label: '未转运',
-              desc: '指当前航班中转出的行李未完成转运的行李数量,数据是变化的,仅显示最新信息'
-            }
-          ]
+              prop: "undeliveredQuantity",
+              label: "未转运",
+              desc: "指当前航班中转出的行李未完成转运的行李数量,数据是变化的,仅显示最新信息",
+            },
+          ],
         },
         {
-          prop: 'baggageDistributionInfo',
-          label: '行李分布',
+          prop: "baggageDistributionInfo",
+          label: "行李分布",
           children: [
             {
-              prop: 'numberOfContainers',
-              label: '容器',
-              desc: '指当前航班使用容器装载的行李数量,数据是变化的,仅显示最新信息'
+              prop: "numberOfContainers",
+              label: "容器",
+              desc: "指当前航班使用容器装载的行李数量,数据是变化的,仅显示最新信息",
             },
             {
-              prop: 'numberOfBulk',
-              label: '散装',
-              desc: '指当前航班没有使用容器装载的行李数量,数据是变化的,仅显示最新信息',
-              width: 65
-            }
-          ]
-        }
+              prop: "numberOfBulk",
+              label: "散装",
+              desc: "指当前航班没有使用容器装载的行李数量,数据是变化的,仅显示最新信息",
+              width: 65,
+            },
+          ],
+        },
       ],
       tableDataSortRules: {
-        flightCanceled: 'ascending'
+        flightCanceled: "ascending",
       },
       loading: false,
       AirportList: [],
@@ -470,94 +387,94 @@ export default {
       arrivalCount: 0,
       baggageCount: 0,
       hasSetTableScroll: false,
-      table: null
-    }
+      table: null,
+    };
   },
   computed: {
     singleDay() {
-      return this.startDate === this.endDate
-    }
+      return this.startDate === this.endDate;
+    },
   },
   mounted() {
-    this.getAirPortData()
-    this.table = this.$refs.table.bodyWrapper
-    const that = this
-    this.table.addEventListener('scroll', () => {
-      that.scrollTop = this.table.scrollTop
-    })
+    this.getAirPortData();
+    this.table = this.$refs.table.bodyWrapper;
+    const that = this;
+    this.table.addEventListener("scroll", () => {
+      that.scrollTop = this.table.scrollTop;
+    });
   },
   activated() {
-    this.table.scrollTop = this.scrollTop
-    this.getTableData()
-    this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.arrivalTable)
+    this.table.scrollTop = this.scrollTop;
+    this.getTableData();
+    this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.arrivalTable);
   },
   deactivated() {
     if (this.loopEvent) {
-      clearInterval(this.loopEvent)
-      this.loopEvent = null
+      clearInterval(this.loopEvent);
+      this.loopEvent = null;
     }
   },
   beforeDestroy() {
     if (this.loopEvent) {
-      clearInterval(this.loopEvent)
-      this.loopEvent = null
+      clearInterval(this.loopEvent);
+      this.loopEvent = null;
     }
   },
   methods: {
     resetLoopEvent() {
-      this.loading = true
-      this.hasSetTableScroll = false
-      this.loopEvent && clearInterval(this.loopEvent)
-      this.getTableData()
-      this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.arrivalTable)
+      this.loading = true;
+      this.hasSetTableScroll = false;
+      this.loopEvent && clearInterval(this.loopEvent);
+      this.getTableData();
+      this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.arrivalTable);
     },
     airPortChange() {
-      this.resetLoopEvent()
+      this.resetLoopEvent();
     },
     dateChangeHandler() {
-      this.resetLoopEvent()
+      this.resetLoopEvent();
     },
     // 选择机场
     async getAirPortData() {
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.arrivalAirId,
-          dataContent: []
-        })
+          dataContent: [],
+        });
         if (Number(res.code) === 0) {
-          this.AirportList = this._.orderBy(res.returnData.listValues, o => o.planLandingApt)
-          this.formData.currentAirport = 'PEK'
-          this.resetLoopEvent()
+          this.AirportList = this._.orderBy(res.returnData.listValues, (o) => o.planLandingApt);
+          this.formData.currentAirport = "PEK";
+          this.resetLoopEvent();
         } else {
-          this.$message.error(res.message)
+          this.$message.error(res.message);
         }
       } catch (error) {
-        console.log('出错了', error.message || error)
+        console.log("出错了", error.message || error);
       }
     },
     tableRowClassName({ row, rowIndex }) {
-      const classes = []
-      if (row.flightStatus === 'DLY') {
-        classes.push('bgl-delayed')
+      const classes = [];
+      if (row.flightStatus === "DLY") {
+        classes.push("bgl-delayed");
       }
-      if (row.flightStatus === 'CAN') {
-        classes.push('bgl-canceled')
+      if (row.flightStatus === "CAN") {
+        classes.push("bgl-canceled");
       }
       if (row.hasArrived) {
-        classes.push('bgl-hui')
+        classes.push("bgl-hui");
         if (rowIndex === this.arrivalCount - 1) {
-          classes.push('redBorder')
+          classes.push("redBorder");
         }
       }
-      return classes.join(' ')
+      return classes.join(" ");
     },
     headerCellClass({ row, column }) {
-      const classes = []
-      const rule = this.tableDataSortRules[column.property]
+      const classes = [];
+      const rule = this.tableDataSortRules[column.property];
       if (rule) {
-        classes.push(rule)
+        classes.push(rule);
       }
-      return classes.join(' ')
+      return classes.join(" ");
     },
     // 获取表单下拉框数据
     // getFormData(params) {
@@ -572,109 +489,109 @@ export default {
     // 获取表格数据
     async getTableData() {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
-        return
+        return;
       }
-      const arr = [this.formData.currentAirport, this.startDate, this.endDate]
+      const arr = [this.formData.currentAirport, this.startDate, this.endDate];
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.arrivalTableId,
-          dataContent: [...arr, ...arr, ...arr]
-        })
+          dataContent: [...arr, ...arr, ...arr],
+        });
         if (Number(res.code) === 0) {
-          this.initTableData(res.returnData.listValues)
+          this.initTableData(res.returnData.listValues);
         } else {
-          console.log(res.message)
+          console.log(res.message);
         }
-        this.loading = false
+        this.loading = false;
       } catch (error) {
         if (this.loopEvent) {
-          clearInterval(this.loopEvent)
-          this.loopEvent = null
+          clearInterval(this.loopEvent);
+          this.loopEvent = null;
         }
-        this.loading = false
-        console.log('出错了', error.message || error)
+        this.loading = false;
+        console.log("出错了", error.message || error);
       }
     },
     initTableData(tableData) {
-      this.arrivalCount = 0
-      this.baggageCount = 0
-      tableData.forEach(item => {
-        item['flightCanceled'] = item['flightStatus'] === 'CAN' ? 1 : 0
+      this.arrivalCount = 0;
+      this.baggageCount = 0;
+      tableData.forEach((item) => {
+        item["flightCanceled"] = item["flightStatus"] === "CAN" ? 1 : 0;
         if (this.hasArrived(item)) {
-          this.arrivalCount++
+          this.arrivalCount++;
         }
-        this.baggageCount = this.baggageCount + item.projectedLoad
-      })
-      this.tableData = this._.orderBy(tableData, ['hasArrived', 'arrivalTime'], ['desc', 'asc'])
-      setTableFilters(this.tableData, this.tableDataFilters)
-      this.toOrderNum(this.baggageCount)
+        this.baggageCount = this.baggageCount + item.projectedLoad;
+      });
+      this.tableData = this._.orderBy(tableData, ["hasArrived", "arrivalTime"], ["desc", "asc"]);
+      setTableFilters(this.tableData, this.tableDataFilters);
+      this.toOrderNum(this.baggageCount);
       this.$nextTick(() => {
-        this.setTableScroll()
-      })
+        this.setTableScroll();
+      });
     },
     hasArrived(flight) {
       if (flight.arrivalTime) {
-        const now = new Date()
-        const arrivalTime = new Date(flight.arrivalTime)
-        flight['hasArrived'] = now > arrivalTime && !flight['flightCanceled']
+        const now = new Date();
+        const arrivalTime = new Date(flight.arrivalTime);
+        flight["hasArrived"] = now > arrivalTime && !flight["flightCanceled"];
       } else {
-        flight['hasArrived'] = false
+        flight["hasArrived"] = false;
       }
-      return flight['hasArrived']
+      return flight["hasArrived"];
     },
     setTableScroll() {
       if (!this.singleDay || this.hasSetTableScroll || this.arrivalCount === 0) {
-        return
+        return;
       }
-      const table = this.$refs['table'].$el
-      const scrollParent = table.querySelector('.el-table__body-wrapper')
+      const table = this.$refs["table"].$el;
+      const scrollParent = table.querySelector(".el-table__body-wrapper");
       if (scrollParent.scrollHeight <= scrollParent.offsetHeight) {
-        return
+        return;
       }
-      const lastRow = table.querySelectorAll('.el-table__body tr')[this.arrivalCount - 1]
+      const lastRow = table.querySelectorAll(".el-table__body tr")[this.arrivalCount - 1];
       setTimeout(() => {
-        const scrollMid = lastRow.offsetTop + lastRow.offsetHeight - scrollParent.offsetHeight / 2
-        const scrollMax = scrollParent.scrollHeight - scrollParent.offsetHeight
+        const scrollMid = lastRow.offsetTop + lastRow.offsetHeight - scrollParent.offsetHeight / 2;
+        const scrollMax = scrollParent.scrollHeight - scrollParent.offsetHeight;
         if (scrollMid > 0) {
-          const scrollHeight = Math.min(scrollMid, scrollMax)
-          scrollParent.scrollTo(0, scrollHeight)
+          const scrollHeight = Math.min(scrollMid, scrollMax);
+          scrollParent.scrollTo(0, scrollHeight);
         }
-      }, 0)
-      this.hasSetTableScroll = true
+      }, 0);
+      this.hasSetTableScroll = true;
     },
     setNumberTransform() {
-      const numberItems = this.$refs.numberItem // 拿到数字的ref,计算元素数量
-      const numberArr = this.orderNum.filter(item => !isNaN(item))
+      const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
+      const numberArr = this.orderNum.filter((item) => !isNaN(item));
       // 结合CSS 对数字字符进行滚动,显示订单数量
       for (let index = 0; index < numberItems.length; index++) {
-        const elem = numberItems[index]
-        elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`
+        const elem = numberItems[index];
+        elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`;
       }
     },
 
     toOrderNum(num) {
-      num = num.toString()
+      num = num.toString();
       if (num.length < 6) {
-        num = '0' + num // 如未满八位数,添加"0"补位
-        this.toOrderNum(num) // 递归添加"0"补位
+        num = "0" + num; // 如未满八位数,添加"0"补位
+        this.toOrderNum(num); // 递归添加"0"补位
       } else if (num.length >= 6) {
-        this.orderNum = num.split('') // 将其便变成数据,渲染至滚动数组
+        this.orderNum = num.split(""); // 将其便变成数据,渲染至滚动数组
       } else {
         // 订单总量数字超过八位显示异常
-        this.$message.warning('总量数字过大')
+        this.$message.warning("总量数字过大");
       }
-      this.setNumberTransform()
+      this.setNumberTransform();
     },
     exportHandler(refName, tableName) {
       if (this.loading) {
-        return
+        return;
       }
-      const table = this.$refs[refName].$el.cloneNode(true)
-      const fileName = `${tableName}-${this.currentAirport}-${this.startDate}-${this.endDate}.xlsx`
-      throttledExportToExcel(table, tableName, fileName, 2)
-    }
-  }
-}
+      const table = this.$refs[refName].$el.cloneNode(true);
+      const fileName = `${tableName}-${this.currentAirport}-${this.startDate}-${this.endDate}.xlsx`;
+      throttledExportToExcel(table, tableName, fileName, 2);
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -698,7 +615,7 @@ export default {
       optgroup,
       select,
       textarea {
-        font-family: Helvetica, 'Microsoft YaHei';
+        font-family: Helvetica, "Microsoft YaHei";
         font-size: 14px;
       }
       .el-switch__label {
@@ -804,7 +721,7 @@ export default {
       padding: 0;
       text-align: center;
       font-size: 14px;
-      font-family: Helvetica, 'Microsoft YaHei';
+      font-family: Helvetica, "Microsoft YaHei";
       letter-spacing: 0;
     }
     .cell-click {
@@ -838,7 +755,7 @@ export default {
         &.redBorder {
           position: relative;
           &::after {
-            content: '';
+            content: "";
             position: absolute;
             left: 0;
             bottom: 0;

+ 222 - 296
src/views/baggageManagement/components/departure/index.vue

@@ -8,17 +8,8 @@
 <template>
   <div class="departure-one">
     <!--功能区-表单-->
-    <div
-      ref="formWrap"
-      class="terminal-form-wrap"
-    >
-      <el-form
-        ref="form"
-        :inline="true"
-        :model="formData"
-        :rules="rules"
-        class="form"
-      >
+    <div ref="formWrap" class="terminal-form-wrap">
+      <el-form ref="form" :inline="true" :model="formData" :rules="rules" class="form">
         <div class="form-left">
           <el-form-item prop="currentAirport">
             <!-- <el-cascader
@@ -33,22 +24,8 @@
             filterable
             @change="setCurrentAirport"
           /> -->
-            <el-select
-              v-model="formData.currentAirport"
-              class="input-shadow"
-              size="small"
-              style="width: 150px;"
-              filterable
-              default-first-option
-              placeholder="请选择机场"
-              @change="airPortChange"
-            >
-              <el-option
-                v-for="(item, index) in AirportList"
-                :key="index"
-                :label="item.planDepartureApt"
-                :value="item.planDepartureApt"
-              />
+            <el-select v-model="formData.currentAirport" class="input-shadow" size="small" style="width: 150px" filterable default-first-option placeholder="请选择机场" @change="airPortChange">
+              <el-option v-for="(item, index) in AirportList" :key="index" :label="item.planDepartureApt" :value="item.planDepartureApt" />
             </el-select>
           </el-form-item>
           <!-- <el-form-item prop="startDate">
@@ -75,15 +52,12 @@
               @change="endDateChangeHandler"
             />
           </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;"
+              style="width: 300px"
               type="daterange"
               value-format="yyyy-MM-dd"
               start-placeholder="开始日期"
@@ -95,32 +69,18 @@
           <el-form-item>
             <div class="box-item">
               <p>预计装载总数:</p>
-              <li
-                v-for="(item, index) in orderNum"
-                :key="index"
-                :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }"
-              >
+              <li v-for="(item, index) in orderNum" :key="index" :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }">
                 <span v-if="!isNaN(item)">
                   <i ref="numberItem">0123456789</i>
                 </span>
-                <span
-                  v-else
-                  class="comma"
-                >{{ item }}</span>
+                <span v-else class="comma">{{ item }}</span>
               </li>
             </div>
           </el-form-item>
         </div>
-        <div
-          class="form-right"
-          @keyup.enter="onSubmit(0)"
-        >
+        <div class="form-right" @keyup.enter="onSubmit(0)">
           <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>
               <el-input
                 slot="reference"
@@ -137,43 +97,31 @@
             </el-popover>
           </el-form-item>
           <el-form-item>
-            <el-button
-              class="btn-shadow"
-              size="mini"
-              type="primary"
-              @click="onSubmit(0)"
-            >搜索</el-button>
+            <el-button class="btn-shadow" size="mini" type="primary" @click="onSubmit(0)">搜索</el-button>
           </el-form-item>
-          <el-form-item v-is="['dm_dt_timeIcon']">
+          <!-- <el-form-item v-is="['dm_dt_timeIcon']">
+            <TimeZoneSelector />
+          </el-form-item> -->
+          <el-form-item>
             <TimeZoneSelector />
           </el-form-item>
-          <el-form-item v-is="['dm_dt_columnSettings']">
-            <img
-              class="btn-img btn-shadow"
-              src="@/assets/baggage/ic_setting.png"
-              title="列设置"
-              @click="show"
-            >
+          <!-- <el-form-item v-is="['dm_dt_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
+          </el-form-item> -->
+          <el-form-item>
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
           </el-form-item>
-          <el-form-item v-is="['dm_dt_columnSettings']">
-            <img
-              class="btn-img btn-shadow"
-              src="@/assets/baggage/ic_export.png"
-              title="导出"
-              @click="exportHandler('table', '航站离港列表')"
-            >
+          <!-- <el-form-item v-is="['dm_dt_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站离港列表')" />
+          </el-form-item> -->
+          <el-form-item>
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站离港列表')" />
           </el-form-item>
         </div>
       </el-form>
     </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"
@@ -189,20 +137,9 @@
         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>
-            <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]"
@@ -216,10 +153,7 @@
       </el-table>
     </div>
     <!--列设置-->
-    <Dialog
-      :flag="dialogFlag"
-      class="dialog-check-group"
-    >
+    <Dialog :flag="dialogFlag" class="dialog-check-group">
       <div class="dialog-wrapper">
         <div class="title">列设置</div>
         <div class="content">
@@ -231,23 +165,15 @@
             :default-expand-all="true"
             :props="{
               label: 'label',
-              children: 'children'
+              children: 'children',
             }"
             :default-checked-keys="checkedKeysTemp"
             @check="handleCheck"
           />
         </div>
         <div class="foot right t30">
-          <el-button
-            size="medium"
-            class="r24"
-            type="primary"
-            @click="onCheck"
-          >确定</el-button>
-          <el-button
-            size="medium"
-            @click="hide"
-          >取消</el-button>
+          <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
+          <el-button size="medium" @click="hide">取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -255,158 +181,158 @@
 </template>
 
 <script>
-import Dialog from '@/layout/components/Dialog'
-import TimeZoneSelector from '@/components/TimeZoneSelector'
-import terminalMixin from '../../mixins/terminal'
-import formMixin from '../../mixins/form'
-import tableColsMixin from '../../mixins/tableCols'
-import timeZoneMixin from '../../mixins/timeZone'
-import { getQuery } from '@/api/flight'
-import TableHeaderCell from '@/components/TableHeaderCell'
-import { setTableFilters, throttledExportToExcel } from '@/utils/table'
+import Dialog from "@/layout/components/Dialog";
+import TimeZoneSelector from "@/components/TimeZoneSelector";
+import terminalMixin from "../../mixins/terminal";
+import formMixin from "../../mixins/form";
+import tableColsMixin from "../../mixins/tableCols";
+import timeZoneMixin from "../../mixins/timeZone";
+import { getQuery } from "@/api/flight";
+import TableHeaderCell from "@/components/TableHeaderCell";
+import { setTableFilters, throttledExportToExcel } from "@/utils/table";
 
 export default {
-  name: 'DepartureTerminalView',
+  name: "DepartureTerminalView",
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
   data() {
     return {
-      orderNum: ['0', '0', '0', '0', '0', '0'], // 默认总数
+      orderNum: ["0", "0", "0", "0", "0", "0"], // 默认总数
       popoverVisible: false,
       // 初始表头
       tableCols: [
         {
-          prop: 'flightNO',
-          label: '航班号',
-          desc: '指航班编号',
+          prop: "flightNO",
+          label: "航班号",
+          desc: "指航班编号",
           width: 80,
-          fixed: 'left',
+          fixed: "left",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'flightDate',
-          label: '执飞日期',
-          desc: '指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)',
+          prop: "flightDate",
+          label: "执飞日期",
+          desc: "指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)",
           width: 105,
-          fixed: 'left',
+          fixed: "left",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'planDepartureTime',
-          label: '起飞时间',
-          desc: '根据优先级别显示时间。优先级别:1.实际起飞时间,2.预计起飞时间,3.计划起飞时间',
+          prop: "planDepartureTime",
+          label: "起飞时间",
+          desc: "根据优先级别显示时间。优先级别:1.实际起飞时间,2.预计起飞时间,3.计划起飞时间",
           width: 150,
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'targetAirport',
-          label: '目的站',
-          desc: '指航班执飞航段的目的航站,以航站三字码显示',
+          prop: "targetAirport",
+          label: "目的站",
+          desc: "指航班执飞航段的目的航站,以航站三字码显示",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'departureBuild',
-          label: '航站楼',
-          desc: '指航班执飞航段的目的航站楼',
+          prop: "departureBuild",
+          label: "航站楼",
+          desc: "指航班执飞航段的目的航站楼",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'bordingGate',
-          label: '登机口',
-          desc: '指航班的登机口代码,数据是变化的,仅显示最新信息',
+          prop: "bordingGate",
+          label: "登机口",
+          desc: "指航班的登机口代码,数据是变化的,仅显示最新信息",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'standForDepartrue',
-          label: '停机位',
-          desc: '指航班的停机位代码,数据是变化的,仅显示最新信息',
+          prop: "standForDepartrue",
+          label: "停机位",
+          desc: "指航班的停机位代码,数据是变化的,仅显示最新信息",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'checkInTravellerNumber',
-          label: '托运旅客',
-          desc: '指航班已办理行李托运业务的旅客人数,含取消托运的旅客人数'
+          prop: "checkInTravellerNumber",
+          label: "托运旅客",
+          desc: "指航班已办理行李托运业务的旅客人数,含取消托运的旅客人数",
         },
         {
-          prop: 'checkInNumber',
-          label: '值机数',
-          desc: '指已办理值机托运的行李数量,含取消托运的行李数量,含未激活'
+          prop: "checkInNumber",
+          label: "值机数",
+          desc: "指已办理值机托运的行李数量,含取消托运的行李数量,含未激活",
         },
         {
-          prop: 'unActive',
-          label: '未激活',
-          desc: '指最后的 BSM 报文“.S”中行李状态为“I”的行李数量,含取消托运的行李数量'
+          prop: "unActive",
+          label: "未激活",
+          desc: "指最后的 BSM 报文“.S”中行李状态为“I”的行李数量,含取消托运的行李数量",
         },
         {
-          prop: 'preLoad',
-          label: '预计装载',
-          desc: '指已办理值机托运的行李数量,不含取消托运的行李数量,不包含未激活'
+          prop: "preLoad",
+          label: "预计装载",
+          desc: "指已办理值机托运的行李数量,不含取消托运的行李数量,不包含未激活",
         },
         {
-          prop: 'checkNumber',
-          label: '安检',
-          desc: '指进行安检的行李数量,含取消托运的行李数量'
+          prop: "checkNumber",
+          label: "安检",
+          desc: "指进行安检的行李数量,含取消托运的行李数量",
         },
         {
-          prop: 'sortNumber',
-          label: '分拣',
-          desc: '指已分拣完成的行李数量,含取消托运的行李数量'
+          prop: "sortNumber",
+          label: "分拣",
+          desc: "指已分拣完成的行李数量,含取消托运的行李数量",
         },
         {
-          prop: 'loadNumber',
-          label: '装车',
-          desc: '指已在分拣口装车完成的行李数量,含取消托运的行李数量'
+          prop: "loadNumber",
+          label: "装车",
+          desc: "指已在分拣口装车完成的行李数量,含取消托运的行李数量",
         },
         {
-          prop: 'boardID',
-          label: '装机',
-          desc: '指装机完成的行李数量,不含取消托运的行李数量'
+          prop: "boardID",
+          label: "装机",
+          desc: "指装机完成的行李数量,不含取消托运的行李数量",
         },
         {
-          prop: 'tounLoad',
-          label: '待翻减',
-          desc: '指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,而没有完成翻减的行李数量(须翻减总数减去已翻减数)'
+          prop: "tounLoad",
+          label: "待翻减",
+          desc: "指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,而没有完成翻减的行李数量(须翻减总数减去已翻减数)",
         },
         {
-          prop: 'OFFCount',
-          label: '已翻减',
-          desc: '指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,且已完成翻减的行李数量'
+          prop: "OFFCount",
+          label: "已翻减",
+          desc: "指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,且已完成翻减的行李数量",
         },
         {
-          prop: 'noCheckInNumber',
-          label: '取消托运',
-          desc: '指旅客在办理行李托运后,又取消托运的行李总数量'
+          prop: "noCheckInNumber",
+          label: "取消托运",
+          desc: "指旅客在办理行李托运后,又取消托运的行李总数量",
         },
         {
-          prop: 'noBSM',
-          label: '无BSM',
-          desc: '行李有处理信息(BPM)但无值机信息(BSM)的行李数量'
+          prop: "noBSM",
+          label: "无BSM",
+          desc: "行李有处理信息(BPM)但无值机信息(BSM)的行李数量",
         },
         {
-          prop: 'warning',
-          label: '风险预警',
-          desc: '指依据航班信息中预计起飞时间和当前时间差,与根据分拣到停机位设置的报警阈值对比,超过阈值的为风险行李,本项显示风险预警行李数量'
+          prop: "warning",
+          label: "风险预警",
+          desc: "指依据航班信息中预计起飞时间和当前时间差,与根据分拣到停机位设置的报警阈值对比,超过阈值的为风险行李,本项显示风险预警行李数量",
         },
         {
-          prop: 'exceptions',
-          label: '未装机行李',
-          desc: '指航班关闭货舱门后,应装而未装的行李数量'
+          prop: "exceptions",
+          label: "未装机行李",
+          desc: "指航班关闭货舱门后,应装而未装的行李数量",
         },
         {
-          prop: 'midIn',
-          label: '中转进行李',
-          desc: '指从其他航班中转到当前航班的行李数量'
-        }
+          prop: "midIn",
+          label: "中转进行李",
+          desc: "指从其他航班中转到当前航班的行李数量",
+        },
       ],
       tableDataSortRules: {
-        flightCanceled: 'ascending'
+        flightCanceled: "ascending",
       },
       loading: false,
       AirportList: [],
@@ -414,96 +340,96 @@ export default {
       leaveCount: 0,
       baggageCount: 0,
       hasSetTableScroll: false,
-      table: null
-    }
+      table: null,
+    };
   },
   computed: {
     singleDay() {
-      return this.startDate === this.endDate
-    }
+      return this.startDate === this.endDate;
+    },
   },
   mounted() {
-    this.getAirPortData()
-    this.table = this.$refs.table.bodyWrapper
-    const that = this
-    this.table.addEventListener('scroll', () => {
-      that.scrollTop = this.table.scrollTop
-    })
+    this.getAirPortData();
+    this.table = this.$refs.table.bodyWrapper;
+    const that = this;
+    this.table.addEventListener("scroll", () => {
+      that.scrollTop = this.table.scrollTop;
+    });
   },
   activated() {
-    this.table.scrollTop = this.scrollTop
-    this.getTableData()
-    this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable)
+    this.table.scrollTop = this.scrollTop;
+    this.getTableData();
+    this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable);
   },
   deactivated() {
     if (this.loopEvent) {
-      clearInterval(this.loopEvent)
-      this.loopEvent = null
+      clearInterval(this.loopEvent);
+      this.loopEvent = null;
     }
   },
   beforeDestroy() {
     if (this.loopEvent) {
-      clearInterval(this.loopEvent)
-      this.loopEvent = null
+      clearInterval(this.loopEvent);
+      this.loopEvent = null;
     }
   },
   methods: {
     resetLoopEvent() {
-      this.loading = true
-      this.hasSetTableScroll = false
-      this.loopEvent && clearInterval(this.loopEvent)
-      this.getTableData()
-      this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable)
+      this.loading = true;
+      this.hasSetTableScroll = false;
+      this.loopEvent && clearInterval(this.loopEvent);
+      this.getTableData();
+      this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable);
     },
     airPortChange() {
-      this.resetLoopEvent()
+      this.resetLoopEvent();
     },
     dateChangeHandler() {
-      this.resetLoopEvent()
+      this.resetLoopEvent();
     },
     async getAirPortData() {
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureAirMainId,
-          dataContent: []
-        })
+          dataContent: [],
+        });
         if (Number(res.code) === 0) {
-          this.AirportList = this._.orderBy(res.returnData.listValues, o => o.planDepartureApt)
-          this.formData.currentAirport = 'PEK'
-          this.resetLoopEvent()
+          this.AirportList = this._.orderBy(res.returnData.listValues, (o) => o.planDepartureApt);
+          this.formData.currentAirport = "PEK";
+          this.resetLoopEvent();
         } else {
-          this.$message.error(res.message)
+          this.$message.error(res.message);
         }
       } catch (error) {
-        console.log('出错了', error.message || error)
+        console.log("出错了", error.message || error);
       }
     },
     tableRowClassName({ row, rowIndex }) {
-      const classes = []
-      if (row.flightStatus === 'DLY') {
-        classes.push('bgl-delayed')
+      const classes = [];
+      if (row.flightStatus === "DLY") {
+        classes.push("bgl-delayed");
       }
-      if (row.flightStatus === 'CAN') {
-        classes.push('bgl-canceled')
+      if (row.flightStatus === "CAN") {
+        classes.push("bgl-canceled");
       }
       if (row.hasTakeOff === 1) {
-        classes.push('bgl-hui')
+        classes.push("bgl-hui");
         if (rowIndex === this.leaveCount - 1) {
-          classes.push('redBorder')
+          classes.push("redBorder");
         }
       }
-      return classes.join(' ')
+      return classes.join(" ");
     },
     headerCellClass({ row, column }) {
-      const classes = []
-      if (['warning', 'exceptions', 'midIn'].includes(column.property)) {
-        classes.push('bgl-huang')
+      const classes = [];
+      if (["warning", "exceptions", "midIn"].includes(column.property)) {
+        classes.push("bgl-huang");
       }
-      const rule = this.tableDataSortRules[column.property]
+      const rule = this.tableDataSortRules[column.property];
       if (rule) {
-        classes.push(rule)
+        classes.push(rule);
       }
-      return classes.join(' ')
+      return classes.join(" ");
     },
     // 获取表单下拉框数据
     // getFormData(params) {
@@ -518,100 +444,100 @@ export default {
     // 获取表格数据
     async getTableData() {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
-        return
+        return;
       }
-      const arr = [this.formData.currentAirport, this.startDate, this.endDate]
+      const arr = [this.formData.currentAirport, this.startDate, this.endDate];
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureTableMainId,
-          dataContent: [...arr, ...arr, ...arr]
-        })
+          dataContent: [...arr, ...arr, ...arr],
+        });
         if (Number(res.code) === 0) {
-          this.initTableData(res.returnData.listValues)
+          this.initTableData(res.returnData.listValues);
         } else {
-          console.log(res.message)
+          console.log(res.message);
         }
-        this.loading = false
+        this.loading = false;
       } catch (error) {
         if (this.loopEvent) {
-          clearInterval(this.loopEvent)
-          this.loopEvent = null
+          clearInterval(this.loopEvent);
+          this.loopEvent = null;
         }
-        this.loading = false
-        console.log('出错了', error.message || error)
+        this.loading = false;
+        console.log("出错了", error.message || error);
       }
     },
     initTableData(tableData) {
-      this.leaveCount = 0
-      this.baggageCount = 0
-      tableData.forEach(item => {
-        item['flightCanceled'] = item['flightStatus'] === 'CAN' ? 1 : 0
-        item['tounLoad'] -= item['OFFCount']
-        if (item['hasTakeOff'] === 1 && !item['flightCanceled']) {
-          this.leaveCount++
+      this.leaveCount = 0;
+      this.baggageCount = 0;
+      tableData.forEach((item) => {
+        item["flightCanceled"] = item["flightStatus"] === "CAN" ? 1 : 0;
+        item["tounLoad"] -= item["OFFCount"];
+        if (item["hasTakeOff"] === 1 && !item["flightCanceled"]) {
+          this.leaveCount++;
         }
-        this.baggageCount = this.baggageCount + item.preLoad
-      })
-      this.tableData = this._.orderBy(tableData, ['hasTakeOff', 'planDepartureTime'], ['desc', 'asc'])
-      setTableFilters(this.tableData, this.tableDataFilters)
-      this.toOrderNum(this.baggageCount)
+        this.baggageCount = this.baggageCount + item.preLoad;
+      });
+      this.tableData = this._.orderBy(tableData, ["hasTakeOff", "planDepartureTime"], ["desc", "asc"]);
+      setTableFilters(this.tableData, this.tableDataFilters);
+      this.toOrderNum(this.baggageCount);
       this.$nextTick(() => {
-        this.setTableScroll()
-      })
+        this.setTableScroll();
+      });
     },
     setTableScroll() {
       if (!this.singleDay || this.hasSetTableScroll || this.leaveCount === 0) {
-        return
+        return;
       }
-      const table = this.$refs['table'].$el
-      const scrollParent = table.querySelector('.el-table__body-wrapper')
+      const table = this.$refs["table"].$el;
+      const scrollParent = table.querySelector(".el-table__body-wrapper");
       if (scrollParent.scrollHeight <= scrollParent.offsetHeight) {
-        return
+        return;
       }
-      const lastRow = table.querySelectorAll('.el-table__body tr')[this.leaveCount - 1]
+      const lastRow = table.querySelectorAll(".el-table__body tr")[this.leaveCount - 1];
       setTimeout(() => {
-        const scrollMid = lastRow.offsetTop + lastRow.offsetHeight - scrollParent.offsetHeight / 2
-        const scrollMax = scrollParent.scrollHeight - scrollParent.offsetHeight
+        const scrollMid = lastRow.offsetTop + lastRow.offsetHeight - scrollParent.offsetHeight / 2;
+        const scrollMax = scrollParent.scrollHeight - scrollParent.offsetHeight;
         if (scrollMid > 0) {
-          const scrollHeight = Math.min(scrollMid, scrollMax)
-          scrollParent.scrollTo(0, scrollHeight)
+          const scrollHeight = Math.min(scrollMid, scrollMax);
+          scrollParent.scrollTo(0, scrollHeight);
         }
-      }, 0)
-      this.hasSetTableScroll = true
+      }, 0);
+      this.hasSetTableScroll = true;
     },
     setNumberTransform() {
-      const numberItems = this.$refs.numberItem // 拿到数字的ref,计算元素数量
-      const numberArr = this.orderNum.filter(item => !isNaN(item))
+      const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
+      const numberArr = this.orderNum.filter((item) => !isNaN(item));
       // 结合CSS 对数字字符进行滚动,显示订单数量
       for (let index = 0; index < numberItems.length; index++) {
-        const elem = numberItems[index]
-        elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`
+        const elem = numberItems[index];
+        elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`;
       }
     },
 
     toOrderNum(num) {
-      num = num.toString()
+      num = num.toString();
       if (num.length < 6) {
-        num = '0' + num // 如未满八位数,添加"0"补位
-        this.toOrderNum(num) // 递归添加"0"补位
+        num = "0" + num; // 如未满八位数,添加"0"补位
+        this.toOrderNum(num); // 递归添加"0"补位
       } else if (num.length >= 6) {
-        this.orderNum = num.split('') // 将其便变成数据,渲染至滚动数组
+        this.orderNum = num.split(""); // 将其便变成数据,渲染至滚动数组
       } else {
         // 订单总量数字超过八位显示异常
-        this.$message.warning('总量数字过大')
+        this.$message.warning("总量数字过大");
       }
-      this.setNumberTransform()
+      this.setNumberTransform();
     },
     exportHandler(refName, tableName) {
       if (this.loading) {
-        return
+        return;
       }
-      const table = this.$refs[refName].$el.cloneNode(true)
-      const fileName = `${tableName}-${this.currentAirport}-${this.startDate}-${this.endDate}.xlsx`
-      throttledExportToExcel(table, tableName, fileName)
-    }
-  }
-}
+      const table = this.$refs[refName].$el.cloneNode(true);
+      const fileName = `${tableName}-${this.currentAirport}-${this.startDate}-${this.endDate}.xlsx`;
+      throttledExportToExcel(table, tableName, fileName);
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -635,7 +561,7 @@ export default {
       optgroup,
       select,
       textarea {
-        font-family: Helvetica, 'Microsoft YaHei';
+        font-family: Helvetica, "Microsoft YaHei";
         font-size: 14px;
       }
       .el-switch__label {
@@ -741,7 +667,7 @@ export default {
       padding: 0;
       text-align: center;
       font-size: 14px;
-      font-family: Helvetica, 'Microsoft YaHei';
+      font-family: Helvetica, "Microsoft YaHei";
       letter-spacing: 0;
     }
     .cell-click {
@@ -774,7 +700,7 @@ export default {
         &.redBorder {
           position: relative;
           &::after {
-            content: '';
+            content: "";
             position: absolute;
             left: 0;
             bottom: 0;
@@ -794,7 +720,7 @@ export default {
         background: lightcoral !important;
         position: relative;
         &::after {
-          content: '';
+          content: "";
           display: block;
           width: 100%;
           height: 100%;

+ 246 - 329
src/views/baggageManagement/components/departureC/index.vue

@@ -8,17 +8,8 @@
 <template>
   <div class="departure-one">
     <!--功能区-表单-->
-    <div
-      ref="formWrap"
-      class="terminal-form-wrap"
-    >
-      <el-form
-        ref="form"
-        :inline="true"
-        :model="formData"
-        :rules="rules"
-        class="form"
-      >
+    <div ref="formWrap" class="terminal-form-wrap">
+      <el-form ref="form" :inline="true" :model="formData" :rules="rules" class="form">
         <div class="form-left">
           <el-form-item prop="currentAirport">
             <!-- <el-cascader
@@ -33,28 +24,11 @@
             filterable
             @change="setCurrentAirport"
           /> -->
-            <el-select
-              v-model="formData.currentAirport"
-              class="input-shadow"
-              size="small"
-              style="width: 150px;"
-              filterable
-              default-first-option
-              placeholder="请选择机场"
-              @change="airPortChange"
-            >
-              <el-option
-                v-for="(item, index) in AirportList"
-                :key="index"
-                :label="item.planDepartureApt"
-                :value="item.planDepartureApt"
-              />
+            <el-select v-model="formData.currentAirport" class="input-shadow" size="small" style="width: 150px" filterable default-first-option placeholder="请选择机场" @change="airPortChange">
+              <el-option v-for="(item, index) in AirportList" :key="index" :label="item.planDepartureApt" :value="item.planDepartureApt" />
             </el-select>
           </el-form-item>
-          <el-form-item
-            prop="flightDate"
-            label="航班日期"
-          >
+          <el-form-item prop="flightDate" label="航班日期">
             <!-- <el-date-picker
               v-model="formData.flightDate"
               size="small"
@@ -65,54 +39,31 @@
               :picker-options="dateRangePickerOptions"
               @change="dateChangeHandler"
             /> -->
-            <el-date-picker
-              v-model="formData.flightDate[0]"
-              size="small"
-              type="date"
-              value-format="yyyy-MM-dd"
-              placeholder="开始日期"
-              @change="dateChange"
-              >
-            </el-date-picker>
+            <el-date-picker v-model="formData.flightDate[0]" size="small" type="date" value-format="yyyy-MM-dd" placeholder="开始日期" @change="dateChange"> </el-date-picker>
           </el-form-item>
-          <el-form-item
-          >
-              <el-button-group  size="small">
-                <!-- <el-button type="primary" @click="getEndDate('-1')" size="small" style="padding:7px 13px">前一天</el-button> -->
-                <!-- <el-button type="primary" @click="getEndDate('-2')" size="small" style="padding:7px 13px">前两天</el-button> -->
-                <el-button type="primary" @click="getEndDate('+1')" size="small" style="padding:7px 13px">后一天</el-button>
-                <el-button type="primary" @click="getEndDate('+2')" size="small" style="padding:7px 13px">后两天</el-button>
-              </el-button-group>
+          <el-form-item>
+            <el-button-group size="small">
+              <!-- <el-button type="primary" @click="getEndDate('-1')" size="small" style="padding:7px 13px">前一天</el-button> -->
+              <!-- <el-button type="primary" @click="getEndDate('-2')" size="small" style="padding:7px 13px">前两天</el-button> -->
+              <el-button type="primary" @click="getEndDate('+1')" size="small" style="padding: 7px 13px">后一天</el-button>
+              <el-button type="primary" @click="getEndDate('+2')" size="small" style="padding: 7px 13px">后两天</el-button>
+            </el-button-group>
           </el-form-item>
           <el-form-item>
             <div class="box-item">
               <p>预计装载总数:</p>
-              <li
-                v-for="(item, index) in orderNum"
-                :key="index"
-                :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }"
-              >
+              <li v-for="(item, index) in orderNum" :key="index" :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }">
                 <span v-if="!isNaN(item)">
                   <i ref="numberItem">0123456789</i>
                 </span>
-                <span
-                  v-else
-                  class="comma"
-                >{{ item }}</span>
+                <span v-else class="comma">{{ item }}</span>
               </li>
             </div>
           </el-form-item>
         </div>
-        <div
-          class="form-right"
-          @keyup.enter="onSubmit(0)"
-        >
+        <div class="form-right" @keyup.enter="onSubmit(0)">
           <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>
               <el-input
                 slot="reference"
@@ -129,43 +80,31 @@
             </el-popover>
           </el-form-item>
           <el-form-item>
-            <el-button
-              class="btn-shadow"
-              size="mini"
-              type="primary"
-              @click="onSubmit(0)"
-            >搜索</el-button>
+            <el-button class="btn-shadow" size="mini" type="primary" @click="onSubmit(0)">搜索</el-button>
           </el-form-item>
-          <el-form-item v-is="['dm_dt_timeIcon']">
+          <!-- <el-form-item v-is="['dm_dt_timeIcon']">
+            <TimeZoneSelector />
+          </el-form-item> -->
+          <el-form-item>
             <TimeZoneSelector />
           </el-form-item>
-          <el-form-item v-is="['dm_dt_columnSettings']">
-            <img
-              class="btn-img btn-shadow"
-              src="@/assets/baggage/ic_setting.png"
-              title="列设置"
-              @click="show"
-            >
+          <!-- <el-form-item v-is="['dm_dt_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
+          </el-form-item> -->
+          <el-form-item>
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
           </el-form-item>
-          <el-form-item v-is="['dm_dt_columnSettings']">
-            <img
-              class="btn-img btn-shadow"
-              src="@/assets/baggage/ic_export.png"
-              title="导出"
-              @click="exportHandler('table', '航站离港列表')"
-            >
+          <!-- <el-form-item v-is="['dm_dt_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站离港列表')" />
+          </el-form-item> -->
+          <el-form-item>
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站离港列表')" />
           </el-form-item>
         </div>
       </el-form>
     </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"
@@ -181,20 +120,9 @@
         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>
-            <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]"
@@ -208,10 +136,7 @@
       </el-table>
     </div>
     <!--列设置-->
-    <Dialog
-      :flag="dialogFlag"
-      class="dialog-check-group"
-    >
+    <Dialog :flag="dialogFlag" class="dialog-check-group">
       <div class="dialog-wrapper">
         <div class="title">列设置</div>
         <div class="content">
@@ -223,23 +148,15 @@
             :default-expand-all="true"
             :props="{
               label: 'label',
-              children: 'children'
+              children: 'children',
             }"
             :default-checked-keys="checkedKeysTemp"
             @check="handleCheck"
           />
         </div>
         <div class="foot right t30">
-          <el-button
-            size="medium"
-            class="r24"
-            type="primary"
-            @click="onCheck"
-          >确定</el-button>
-          <el-button
-            size="medium"
-            @click="hide"
-          >取消</el-button>
+          <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
+          <el-button size="medium" @click="hide">取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -247,158 +164,158 @@
 </template>
 
 <script>
-import Dialog from '@/layout/components/Dialog'
-import TimeZoneSelector from '@/components/TimeZoneSelector'
-import terminalMixin from '../../mixins/terminal'
-import formMixin from '../../mixins/form'
-import tableColsMixin from '../../mixins/tableCols'
-import timeZoneMixin from '../../mixins/timeZone'
-import { getQuery } from '@/api/flight'
-import TableHeaderCell from '@/components/TableHeaderCell'
-import { setTableFilters, throttledExportToExcel } from '@/utils/table'
+import Dialog from "@/layout/components/Dialog";
+import TimeZoneSelector from "@/components/TimeZoneSelector";
+import terminalMixin from "../../mixins/terminal";
+import formMixin from "../../mixins/form";
+import tableColsMixin from "../../mixins/tableCols";
+import timeZoneMixin from "../../mixins/timeZone";
+import { getQuery } from "@/api/flight";
+import TableHeaderCell from "@/components/TableHeaderCell";
+import { setTableFilters, throttledExportToExcel } from "@/utils/table";
 
 export default {
-  name: 'DepartureTerminalView',
+  name: "DepartureTerminalView",
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
   data() {
     return {
-      orderNum: ['0', '0', '0', '0', '0', '0'], // 默认总数
+      orderNum: ["0", "0", "0", "0", "0", "0"], // 默认总数
       popoverVisible: false,
       // 初始表头
       tableCols: [
         {
-          prop: 'flightNO',
-          label: '航班号',
-          desc: '指航班编号',
+          prop: "flightNO",
+          label: "航班号",
+          desc: "指航班编号",
           width: 80,
-          fixed: 'left',
+          fixed: "left",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'flightDate',
-          label: '执飞日期',
-          desc: '指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)',
+          prop: "flightDate",
+          label: "执飞日期",
+          desc: "指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)",
           width: 105,
-          fixed: 'left',
+          fixed: "left",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'planDepartureTime',
-          label: '起飞时间',
-          desc: '根据优先级别显示时间。优先级别:1.实际起飞时间,2.预计起飞时间,3.计划起飞时间',
+          prop: "planDepartureTime",
+          label: "起飞时间",
+          desc: "根据优先级别显示时间。优先级别:1.实际起飞时间,2.预计起飞时间,3.计划起飞时间",
           width: 150,
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'targetAirport',
-          label: '目的站',
-          desc: '指航班执飞航段的目的航站,以航站三字码显示',
+          prop: "targetAirport",
+          label: "目的站",
+          desc: "指航班执飞航段的目的航站,以航站三字码显示",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'departureBuild',
-          label: '航站楼',
-          desc: '指航班执飞航段的目的航站楼',
+          prop: "departureBuild",
+          label: "航站楼",
+          desc: "指航班执飞航段的目的航站楼",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'bordingGate',
-          label: '登机口',
-          desc: '指航班的登机口代码,数据是变化的,仅显示最新信息',
+          prop: "bordingGate",
+          label: "登机口",
+          desc: "指航班的登机口代码,数据是变化的,仅显示最新信息",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'standForDepartrue',
-          label: '停机位',
-          desc: '指航班的停机位代码,数据是变化的,仅显示最新信息',
+          prop: "standForDepartrue",
+          label: "停机位",
+          desc: "指航班的停机位代码,数据是变化的,仅显示最新信息",
           filterable: true,
-          sortable: true
+          sortable: true,
         },
         {
-          prop: 'checkInTravellerNumber',
-          label: '托运旅客',
-          desc: '指航班已办理行李托运业务的旅客人数,含取消托运的旅客人数'
+          prop: "checkInTravellerNumber",
+          label: "托运旅客",
+          desc: "指航班已办理行李托运业务的旅客人数,含取消托运的旅客人数",
         },
         {
-          prop: 'checkInNumber',
-          label: '值机数',
-          desc: '指已办理值机托运的行李数量,含取消托运的行李数量,含未激活'
+          prop: "checkInNumber",
+          label: "值机数",
+          desc: "指已办理值机托运的行李数量,含取消托运的行李数量,含未激活",
         },
         {
-          prop: 'unActive',
-          label: '未激活',
-          desc: '指最后的 BSM 报文“.S”中行李状态为“I”的行李数量,含取消托运的行李数量'
+          prop: "unActive",
+          label: "未激活",
+          desc: "指最后的 BSM 报文“.S”中行李状态为“I”的行李数量,含取消托运的行李数量",
         },
         {
-          prop: 'preLoad',
-          label: '预计装载',
-          desc: '指已办理值机托运的行李数量,不含取消托运的行李数量,不包含未激活'
+          prop: "preLoad",
+          label: "预计装载",
+          desc: "指已办理值机托运的行李数量,不含取消托运的行李数量,不包含未激活",
         },
         {
-          prop: 'checkNumber',
-          label: '安检',
-          desc: '指进行安检的行李数量,含取消托运的行李数量'
+          prop: "checkNumber",
+          label: "安检",
+          desc: "指进行安检的行李数量,含取消托运的行李数量",
         },
         {
-          prop: 'sortNumber',
-          label: '分拣',
-          desc: '指已分拣完成的行李数量,含取消托运的行李数量'
+          prop: "sortNumber",
+          label: "分拣",
+          desc: "指已分拣完成的行李数量,含取消托运的行李数量",
         },
         {
-          prop: 'loadNumber',
-          label: '装车',
-          desc: '指已在分拣口装车完成的行李数量,含取消托运的行李数量'
+          prop: "loadNumber",
+          label: "装车",
+          desc: "指已在分拣口装车完成的行李数量,含取消托运的行李数量",
         },
         {
-          prop: 'boardID',
-          label: '装机',
-          desc: '指装机完成的行李数量,不含取消托运的行李数量'
+          prop: "boardID",
+          label: "装机",
+          desc: "指装机完成的行李数量,不含取消托运的行李数量",
         },
         {
-          prop: 'tounLoad',
-          label: '待翻减',
-          desc: '指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,而没有完成翻减的行李数量(须翻减总数减去已翻减数)'
+          prop: "tounLoad",
+          label: "待翻减",
+          desc: "指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,而没有完成翻减的行李数量(须翻减总数减去已翻减数)",
         },
         {
-          prop: 'OFFCount',
-          label: '已翻减',
-          desc: '指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,且已完成翻减的行李数量'
+          prop: "OFFCount",
+          label: "已翻减",
+          desc: "指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,且已完成翻减的行李数量",
         },
         {
-          prop: 'noCheckInNumber',
-          label: '取消托运',
-          desc: '指旅客在办理行李托运后,又取消托运的行李总数量'
+          prop: "noCheckInNumber",
+          label: "取消托运",
+          desc: "指旅客在办理行李托运后,又取消托运的行李总数量",
         },
         {
-          prop: 'noBSM',
-          label: '无BSM',
-          desc: '行李有处理信息(BPM)但无值机信息(BSM)的行李数量'
+          prop: "noBSM",
+          label: "无BSM",
+          desc: "行李有处理信息(BPM)但无值机信息(BSM)的行李数量",
         },
         {
-          prop: 'warning',
-          label: '风险预警',
-          desc: '指依据航班信息中预计起飞时间和当前时间差,与根据分拣到停机位设置的报警阈值对比,超过阈值的为风险行李,本项显示风险预警行李数量'
+          prop: "warning",
+          label: "风险预警",
+          desc: "指依据航班信息中预计起飞时间和当前时间差,与根据分拣到停机位设置的报警阈值对比,超过阈值的为风险行李,本项显示风险预警行李数量",
         },
         {
-          prop: 'exceptions',
-          label: '未装机行李',
-          desc: '指航班关闭货舱门后,应装而未装的行李数量'
+          prop: "exceptions",
+          label: "未装机行李",
+          desc: "指航班关闭货舱门后,应装而未装的行李数量",
         },
         {
-          prop: 'midIn',
-          label: '中转进行李',
-          desc: '指从其他航班中转到当前航班的行李数量'
-        }
+          prop: "midIn",
+          label: "中转进行李",
+          desc: "指从其他航班中转到当前航班的行李数量",
+        },
       ],
       tableDataSortRules: {
-        flightCanceled: 'ascending'
+        flightCanceled: "ascending",
       },
       loading: false,
       AirportList: [],
@@ -406,127 +323,127 @@ export default {
       leaveCount: 0,
       baggageCount: 0,
       hasSetTableScroll: false,
-      table: null
-    }
+      table: null,
+    };
   },
   computed: {
     singleDay() {
-      return this.startDate === this.endDate
-    }
+      return this.startDate === this.endDate;
+    },
   },
   mounted() {
-    this.getAirPortData()
-    this.table = this.$refs.table.bodyWrapper
-    const that = this
-    this.table.addEventListener('scroll', () => {
-      that.scrollTop = this.table.scrollTop
-    })
+    this.getAirPortData();
+    this.table = this.$refs.table.bodyWrapper;
+    const that = this;
+    this.table.addEventListener("scroll", () => {
+      that.scrollTop = this.table.scrollTop;
+    });
   },
   activated() {
-    this.table.scrollTop = this.scrollTop
-    this.getTableData()
-    this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable)
+    this.table.scrollTop = this.scrollTop;
+    this.getTableData();
+    this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable);
   },
   deactivated() {
     if (this.loopEvent) {
-      clearInterval(this.loopEvent)
-      this.loopEvent = null
+      clearInterval(this.loopEvent);
+      this.loopEvent = null;
     }
   },
   beforeDestroy() {
     if (this.loopEvent) {
-      clearInterval(this.loopEvent)
-      this.loopEvent = null
+      clearInterval(this.loopEvent);
+      this.loopEvent = null;
     }
   },
   methods: {
-    getEndDate(num){
-      let n = parseInt(num)
-      let nd = new Date(this.formData.flightDate[0])
-      let day = nd.getDate()
-      let setd = new Date(nd.setDate(day + n))
-      let ryear = setd.getFullYear()
-      let rmonth = setd.getMonth() + 1
-      let rday = setd.getDate()
+    getEndDate(num) {
+      let n = parseInt(num);
+      let nd = new Date(this.formData.flightDate[0]);
+      let day = nd.getDate();
+      let setd = new Date(nd.setDate(day + n));
+      let ryear = setd.getFullYear();
+      let rmonth = setd.getMonth() + 1;
+      let rday = setd.getDate();
       let frmonth, frday;
       // month day + '0'
       if (rmonth < 10) {
-        frmonth = '0' + rmonth
+        frmonth = "0" + rmonth;
       } else {
-        frmonth = rmonth
+        frmonth = rmonth;
       }
       if (rday < 10) {
-        frday = '0' + rday
+        frday = "0" + rday;
       } else {
-        frday = rday
+        frday = rday;
       }
       // separator
-      let sep = '-';
-      this.formData.flightDate = [this.formData.flightDate[0],ryear + sep + frmonth + sep + frday];
+      let sep = "-";
+      this.formData.flightDate = [this.formData.flightDate[0], ryear + sep + frmonth + sep + frday];
       this.resetLoopEvent();
     },
     resetLoopEvent() {
-      this.loading = true
-      this.hasSetTableScroll = false
+      this.loading = true;
+      this.hasSetTableScroll = false;
       if (this.loopEvent) {
-        clearInterval(this.loopEvent)
+        clearInterval(this.loopEvent);
       }
-      this.getTableData()
-      this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable)
+      this.getTableData();
+      this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable);
     },
     airPortChange() {
-      this.resetLoopEvent()
+      this.resetLoopEvent();
     },
     dateChangeHandler() {
-      this.resetLoopEvent()
+      this.resetLoopEvent();
     },
-    dateChange(){
-      this.formData.flightDate = [this.formData.flightDate[0],this.formData.flightDate[0]];
-      this.resetLoopEvent()
+    dateChange() {
+      this.formData.flightDate = [this.formData.flightDate[0], this.formData.flightDate[0]];
+      this.resetLoopEvent();
     },
     async getAirPortData() {
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureAirMainId,
-          dataContent: []
-        })
+          dataContent: [],
+        });
         if (Number(res.code) === 0) {
-          this.AirportList = this._.orderBy(res.returnData.listValues, o => o.planDepartureApt)
-          this.formData.currentAirport = 'PEK'
-          this.resetLoopEvent()
+          this.AirportList = this._.orderBy(res.returnData.listValues, (o) => o.planDepartureApt);
+          this.formData.currentAirport = "PEK";
+          this.resetLoopEvent();
         } else {
-          this.$message.error(res.message)
+          this.$message.error(res.message);
         }
       } catch (error) {
-        console.log('出错了', error.message || error)
+        console.log("出错了", error.message || error);
       }
     },
     tableRowClassName({ row, rowIndex }) {
-      const classes = []
-      if (row.flightStatus === 'DLY') {
-        classes.push('bgl-delayed')
+      const classes = [];
+      if (row.flightStatus === "DLY") {
+        classes.push("bgl-delayed");
       }
-      if (row.flightStatus === 'CAN') {
-        classes.push('bgl-canceled')
+      if (row.flightStatus === "CAN") {
+        classes.push("bgl-canceled");
       }
       if (row.hasTakeOff === 1) {
-        classes.push('bgl-hui')
+        classes.push("bgl-hui");
         if (rowIndex === this.leaveCount - 1) {
-          classes.push('redBorder')
+          classes.push("redBorder");
         }
       }
-      return classes.join(' ')
+      return classes.join(" ");
     },
     headerCellClass({ row, column }) {
-      const classes = []
-      if (['warning', 'exceptions', 'midIn'].includes(column.property)) {
-        classes.push('bgl-huang')
+      const classes = [];
+      if (["warning", "exceptions", "midIn"].includes(column.property)) {
+        classes.push("bgl-huang");
       }
-      const rule = this.tableDataSortRules[column.property]
+      const rule = this.tableDataSortRules[column.property];
       if (rule) {
-        classes.push(rule)
+        classes.push(rule);
       }
-      return classes.join(' ')
+      return classes.join(" ");
     },
     // 获取表单下拉框数据
     // getFormData(params) {
@@ -541,100 +458,100 @@ export default {
     // 获取表格数据
     async getTableData() {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
-        return
+        return;
       }
-      const arr = [this.formData.currentAirport, this.startDate, this.endDate]
+      const arr = [this.formData.currentAirport, this.startDate, this.endDate];
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureTableMainId,
-          dataContent: [...arr, ...arr, ...arr]
-        })
+          dataContent: [...arr, ...arr, ...arr],
+        });
         if (Number(res.code) === 0) {
-          this.initTableData(res.returnData.listValues)
+          this.initTableData(res.returnData.listValues);
         } else {
-          console.log(res.message)
+          console.log(res.message);
         }
-        this.loading = false
+        this.loading = false;
       } catch (error) {
         if (this.loopEvent) {
-          clearInterval(this.loopEvent)
-          this.loopEvent = null
+          clearInterval(this.loopEvent);
+          this.loopEvent = null;
         }
-        this.loading = false
-        console.log('出错了', error.message || error)
+        this.loading = false;
+        console.log("出错了", error.message || error);
       }
     },
     initTableData(tableData) {
-      this.leaveCount = 0
-      this.baggageCount = 0
-      tableData.forEach(item => {
-        item['flightCanceled'] = item['flightStatus'] === 'CAN' ? 1 : 0
-        item['tounLoad'] -= item['OFFCount']
-        if (item['hasTakeOff'] === 1 && !item['flightCanceled']) {
-          this.leaveCount++
+      this.leaveCount = 0;
+      this.baggageCount = 0;
+      tableData.forEach((item) => {
+        item["flightCanceled"] = item["flightStatus"] === "CAN" ? 1 : 0;
+        item["tounLoad"] -= item["OFFCount"];
+        if (item["hasTakeOff"] === 1 && !item["flightCanceled"]) {
+          this.leaveCount++;
         }
-        this.baggageCount = this.baggageCount + item.preLoad
-      })
-      this.tableData = this._.orderBy(tableData, ['hasTakeOff', 'planDepartureTime'], ['desc', 'asc'])
-      setTableFilters(this.tableData, this.tableDataFilters)
-      this.toOrderNum(this.baggageCount)
+        this.baggageCount = this.baggageCount + item.preLoad;
+      });
+      this.tableData = this._.orderBy(tableData, ["hasTakeOff", "planDepartureTime"], ["desc", "asc"]);
+      setTableFilters(this.tableData, this.tableDataFilters);
+      this.toOrderNum(this.baggageCount);
       this.$nextTick(() => {
-        this.setTableScroll()
-      })
+        this.setTableScroll();
+      });
     },
     setTableScroll() {
       if (!this.singleDay || this.hasSetTableScroll || this.leaveCount === 0) {
-        return
+        return;
       }
-      const table = this.$refs['table'].$el
-      const scrollParent = table.querySelector('.el-table__body-wrapper')
+      const table = this.$refs["table"].$el;
+      const scrollParent = table.querySelector(".el-table__body-wrapper");
       if (scrollParent.scrollHeight <= scrollParent.offsetHeight) {
-        return
+        return;
       }
-      const lastRow = table.querySelectorAll('.el-table__body tr')[this.leaveCount - 1]
+      const lastRow = table.querySelectorAll(".el-table__body tr")[this.leaveCount - 1];
       setTimeout(() => {
-        const scrollMid = lastRow.offsetTop + lastRow.offsetHeight - scrollParent.offsetHeight / 2
-        const scrollMax = scrollParent.scrollHeight - scrollParent.offsetHeight
+        const scrollMid = lastRow.offsetTop + lastRow.offsetHeight - scrollParent.offsetHeight / 2;
+        const scrollMax = scrollParent.scrollHeight - scrollParent.offsetHeight;
         if (scrollMid > 0) {
-          const scrollHeight = Math.min(scrollMid, scrollMax)
-          scrollParent.scrollTo(0, scrollHeight)
+          const scrollHeight = Math.min(scrollMid, scrollMax);
+          scrollParent.scrollTo(0, scrollHeight);
         }
-      }, 0)
-      this.hasSetTableScroll = true
+      }, 0);
+      this.hasSetTableScroll = true;
     },
     setNumberTransform() {
-      const numberItems = this.$refs.numberItem // 拿到数字的ref,计算元素数量
-      const numberArr = this.orderNum.filter(item => !isNaN(item))
+      const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
+      const numberArr = this.orderNum.filter((item) => !isNaN(item));
       // 结合CSS 对数字字符进行滚动,显示订单数量
       for (let index = 0; index < numberItems.length; index++) {
-        const elem = numberItems[index]
-        elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`
+        const elem = numberItems[index];
+        elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`;
       }
     },
 
     toOrderNum(num) {
-      num = num.toString()
+      num = num.toString();
       if (num.length < 6) {
-        num = '0' + num // 如未满八位数,添加"0"补位
-        this.toOrderNum(num) // 递归添加"0"补位
+        num = "0" + num; // 如未满八位数,添加"0"补位
+        this.toOrderNum(num); // 递归添加"0"补位
       } else if (num.length >= 6) {
-        this.orderNum = num.split('') // 将其便变成数据,渲染至滚动数组
+        this.orderNum = num.split(""); // 将其便变成数据,渲染至滚动数组
       } else {
         // 订单总量数字超过八位显示异常
-        this.$message.warning('总量数字过大')
+        this.$message.warning("总量数字过大");
       }
-      this.setNumberTransform()
+      this.setNumberTransform();
     },
     exportHandler(refName, tableName) {
       if (this.loading) {
-        return
+        return;
       }
-      const table = this.$refs[refName].$el.cloneNode(true)
-      const fileName = `${tableName}-${this.currentAirport}-${this.startDate}-${this.endDate}.xlsx`
-      throttledExportToExcel(table, tableName, fileName)
-    }
-  }
-}
+      const table = this.$refs[refName].$el.cloneNode(true);
+      const fileName = `${tableName}-${this.currentAirport}-${this.startDate}-${this.endDate}.xlsx`;
+      throttledExportToExcel(table, tableName, fileName);
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -658,7 +575,7 @@ export default {
       optgroup,
       select,
       textarea {
-        font-family: Helvetica, 'Microsoft YaHei';
+        font-family: Helvetica, "Microsoft YaHei";
         font-size: 14px;
       }
       .el-switch__label {
@@ -764,7 +681,7 @@ export default {
       padding: 0;
       text-align: center;
       font-size: 14px;
-      font-family: Helvetica, 'Microsoft YaHei';
+      font-family: Helvetica, "Microsoft YaHei";
       letter-spacing: 0;
     }
     .cell-click {
@@ -797,7 +714,7 @@ export default {
         &.redBorder {
           position: relative;
           &::after {
-            content: '';
+            content: "";
             position: absolute;
             left: 0;
             bottom: 0;
@@ -817,7 +734,7 @@ export default {
         background: lightcoral !important;
         position: relative;
         &::after {
-          content: '';
+          content: "";
           display: block;
           width: 100%;
           height: 100%;

+ 12 - 3
src/views/baggageManagement/components/transferArrival/index.vue

@@ -134,13 +134,22 @@
           <el-form-item>
             <el-button class="btn-shadow" size="mini" type="primary" @click="changeView">切换视角</el-button>
           </el-form-item>
-          <el-form-item v-is="['ti_timeIcon']">
+          <!-- <el-form-item v-is="['ti_timeIcon']">
+            <TimeZoneSelector />
+          </el-form-item> -->
+          <el-form-item>
             <TimeZoneSelector />
           </el-form-item>
-          <el-form-item v-is="['ti_columnSettings']">
+          <!-- <el-form-item v-is="['ti_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
+          </el-form-item> -->
+          <el-form-item>
             <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
           </el-form-item>
-          <el-form-item v-is="['dm_dt_columnSettings']">
+          <!-- <el-form-item v-is="['dm_dt_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站中转进港列表')" />
+          </el-form-item> -->
+          <el-form-item>
             <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站中转进港列表')" />
           </el-form-item>
         </div>

+ 248 - 332
src/views/baggageManagement/components/transferDeparture/index.vue

@@ -8,17 +8,8 @@
 <template>
   <div class="transfer-out">
     <!--功能区-表单-->
-    <div
-      ref="formWrap"
-      class="terminal-form-wrap"
-    >
-      <el-form
-        ref="form"
-        :inline="true"
-        :model="formData"
-        :rules="rules"
-        class="form"
-      >
+    <div ref="formWrap" class="terminal-form-wrap">
+      <el-form ref="form" :inline="true" :model="formData" :rules="rules" class="form">
         <div class="form-left">
           <el-form-item prop="currentAirport">
             <!-- <el-cascader
@@ -33,21 +24,8 @@
             filterable
             @change="setCurrentAirport"
           /> -->
-            <el-select
-              v-model="formData.currentAirport"
-              class="input-shadow"
-              size="small"
-              style="width: 100px;"
-              filterable
-              placeholder="请选择机场"
-              @change="airPortChange"
-            >
-              <el-option
-                v-for="(item, index) in AirportList"
-                :key="index"
-                :label="item.planDepartureApt"
-                :value="item.planDepartureApt"
-              />
+            <el-select v-model="formData.currentAirport" class="input-shadow" size="small" style="width: 100px" filterable placeholder="请选择机场" @change="airPortChange">
+              <el-option v-for="(item, index) in AirportList" :key="index" :label="item.planDepartureApt" :value="item.planDepartureApt" />
             </el-select>
           </el-form-item>
           <el-form-item prop="inboundCarrier">
@@ -106,14 +84,11 @@
               @change="endDateChangeHandler"
             />
           </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;"
+              style="width: 300px"
               type="daterange"
               value-format="yyyy-MM-dd"
               start-placeholder="开始日期"
@@ -125,38 +100,24 @@
           <el-form-item>
             <div class="box-item">
               <p>预计中转数:</p>
-              <li
-                v-for="(item, index) in orderNum"
-                :key="index"
-                :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }"
-              >
+              <li v-for="(item, index) in orderNum" :key="index" :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }">
                 <span v-if="!isNaN(item)">
                   <i ref="numberItem">0123456789</i>
                 </span>
-                <span
-                  v-else
-                  class="comma"
-                >{{ item }}</span>
+                <span v-else class="comma">{{ item }}</span>
               </li>
             </div>
           </el-form-item>
         </div>
-        <div
-          class="form-right"
-          @keyup.enter="onSubmit(0)"
-        >
+        <div class="form-right" @keyup.enter="onSubmit(0)">
           <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>
               <el-input
                 slot="reference"
                 v-model="formData.search"
                 class="input-shadow"
-                style="width: 240px;"
+                style="width: 240px"
                 size="small"
                 placeholder="请输入内容"
                 prefix-icon="el-icon-search"
@@ -167,51 +128,34 @@
             </el-popover>
           </el-form-item>
           <el-form-item>
-            <el-button
-              class="btn-shadow"
-              size="mini"
-              type="primary"
-              @click="onSubmit(0)"
-            >搜索</el-button>
+            <el-button class="btn-shadow" size="mini" type="primary" @click="onSubmit(0)">搜索</el-button>
           </el-form-item>
           <el-form-item v-is="['td_showTransit']">
-            <el-button
-              class="btn-shadow"
-              size="mini"
-              type="primary"
-              @click="changeView"
-            >切换视角</el-button>
+            <el-button class="btn-shadow" size="mini" type="primary" @click="changeView">切换视角</el-button>
           </el-form-item>
-          <el-form-item v-is="['td_timeIcon']">
+          <!-- <el-form-item v-is="['td_timeIcon']">
+            <TimeZoneSelector />
+          </el-form-item> -->
+          <el-form-item>
             <TimeZoneSelector />
           </el-form-item>
-          <el-form-item v-is="['td_columnSettings']">
-            <img
-              class="btn-img btn-shadow"
-              src="@/assets/baggage/ic_setting.png"
-              title="列设置"
-              @click="show"
-            >
+          <!-- <el-form-item v-is="['td_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
+          </el-form-item> -->
+          <el-form-item>
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_setting.png" title="列设置" @click="show" />
           </el-form-item>
-          <el-form-item v-is="['dm_dt_columnSettings']">
-            <img
-              class="btn-img btn-shadow"
-              src="@/assets/baggage/ic_export.png"
-              title="导出"
-              @click="exportHandler('table', '航站中转进港列表')"
-            >
+          <!-- <el-form-item v-is="['dm_dt_columnSettings']">
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站中转进港列表')" />
+          </el-form-item> -->
+          <el-form-item>
+            <img class="btn-img btn-shadow" src="@/assets/baggage/ic_export.png" title="导出" @click="exportHandler('table', '航站中转进港列表')" />
           </el-form-item>
         </div>
       </el-form>
     </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"
@@ -228,27 +172,10 @@
         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="childCol in col.children"
-            :key="childCol.prop"
-            :prop="childCol.prop"
-            :label="childCol.label"
-            :width="childCol.width"
-            :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">
+          <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>
-              <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]"
@@ -263,10 +190,7 @@
       </el-table>
     </div>
     <!--列设置-->
-    <Dialog
-      :flag="dialogFlag"
-      class="dialog-check-group"
-    >
+    <Dialog :flag="dialogFlag" class="dialog-check-group">
       <div class="dialog-wrapper">
         <div class="title">列设置</div>
         <div class="content">
@@ -285,16 +209,8 @@
           />
         </div>
         <div class="foot right t30">
-          <el-button
-            size="medium"
-            class="r24"
-            type="primary"
-            @click="onCheck"
-          >确定</el-button>
-          <el-button
-            size="medium"
-            @click="hide"
-          >取消</el-button>
+          <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
+          <el-button size="medium" @click="hide">取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -302,166 +218,166 @@
 </template>
 
 <script>
-import Dialog from '@/layout/components/Dialog'
-import TimeZoneSelector from '@/components/TimeZoneSelector'
-import terminalMixin from '../../mixins/terminal'
-import formMixin from '../../mixins/form'
-import tableColsMixin from '../../mixins/tableCols'
-import timeZoneMixin from '../../mixins/timeZone'
-import { getQuery } from '@/api/flight'
-import TableHeaderCell from '@/components/TableHeaderCell'
-import { setTableFilters, throttledExportToExcel } from '@/utils/table'
+import Dialog from "@/layout/components/Dialog";
+import TimeZoneSelector from "@/components/TimeZoneSelector";
+import terminalMixin from "../../mixins/terminal";
+import formMixin from "../../mixins/form";
+import tableColsMixin from "../../mixins/tableCols";
+import timeZoneMixin from "../../mixins/timeZone";
+import { getQuery } from "@/api/flight";
+import TableHeaderCell from "@/components/TableHeaderCell";
+import { setTableFilters, throttledExportToExcel } from "@/utils/table";
 
 export default {
-  name: 'DepartureTerminalView',
+  name: "DepartureTerminalView",
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
   data() {
     return {
       optionProps: {
-        value: 'inAicompanyCode2',
-        label: 'inAicompanyCode2'
+        value: "inAicompanyCode2",
+        label: "inAicompanyCode2",
       },
       optionPropser: {
-        value: 'outAicompanyCode2',
-        label: 'outAicompanyCode2'
+        value: "outAicompanyCode2",
+        label: "outAicompanyCode2",
       },
       popoverVisible: false,
-      orderNum: ['0', '0', '0', '0', '0', '0'], // 默认总数
+      orderNum: ["0", "0", "0", "0", "0", "0"], // 默认总数
       // 初始表头
       tableCols: [
         {
-          prop: 'departureInfo',
-          label: '离港航班',
+          prop: "departureInfo",
+          label: "离港航班",
           width: 180,
-          fixed: 'left',
+          fixed: "left",
           children: [
             {
-              prop: 'flightNO',
-              label: '航班号',
-              desc: '指航班编号',
+              prop: "flightNO",
+              label: "航班号",
+              desc: "指航班编号",
               width: 80,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'flightDate',
-              label: '航班日期',
-              desc: '指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)',
-              width: 100
+              prop: "flightDate",
+              label: "航班日期",
+              desc: "指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)",
+              width: 100,
             },
             {
-              prop: 'actualDepartureTime',
-              label: '起飞时间',
-              desc: '根据优先级别显示时间。优先级别:1.实际起飞时间,2.预计起飞时间,3.计划起飞时间',
-              width: 100
+              prop: "actualDepartureTime",
+              label: "起飞时间",
+              desc: "根据优先级别显示时间。优先级别:1.实际起飞时间,2.预计起飞时间,3.计划起飞时间",
+              width: 100,
             },
             {
-              prop: 'targetAirport',
-              label: '目的站',
-              desc: '指航班执飞航段的目的航站,以航站三字码+航站简称显示',
+              prop: "targetAirport",
+              label: "目的站",
+              desc: "指航班执飞航段的目的航站,以航站三字码+航站简称显示",
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'departureBuild',
-              label: '起飞航站楼',
-              desc: '指航班执飞航段的起飞航站的航站楼',
+              prop: "departureBuild",
+              label: "起飞航站楼",
+              desc: "指航班执飞航段的起飞航站的航站楼",
               width: 98,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'bordingGate',
-              label: '起飞登机口',
-              desc: '指航班的登机口代码,数据是变化的,仅显示最新信息',
+              prop: "bordingGate",
+              label: "起飞登机口",
+              desc: "指航班的登机口代码,数据是变化的,仅显示最新信息",
               width: 98,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'standForDepartrue',
-              label: '起飞停机位',
-              desc: '指航班的停机位代码,数据是变化的,仅显示最新信息',
+              prop: "standForDepartrue",
+              label: "起飞停机位",
+              desc: "指航班的停机位代码,数据是变化的,仅显示最新信息",
               width: 98,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'timeDifference',
-              label: '转运时间',
-              desc: '指中转动作完成时间'
+              prop: "timeDifference",
+              label: "转运时间",
+              desc: "指中转动作完成时间",
             },
             {
-              prop: 'outTransferredBaggageCount',
-              label: '已中转进行李数',
-              desc: '指其它航班实际已中转至本航班的行李数量',
-              width: 120
-            }
-          ]
+              prop: "outTransferredBaggageCount",
+              label: "已中转进行李数",
+              desc: "指其它航班实际已中转至本航班的行李数量",
+              width: 120,
+            },
+          ],
         },
         {
-          prop: 'arrivalInfo',
-          label: '进港航班',
+          prop: "arrivalInfo",
+          label: "进港航班",
           children: [
             {
-              prop: 'outTransferBaggageCount',
-              label: '中转进行李数',
-              desc: '指其它航班预计中转至本航班的行李数量',
-              width: 100
+              prop: "outTransferBaggageCount",
+              label: "中转进行李数",
+              desc: "指其它航班预计中转至本航班的行李数量",
+              width: 100,
             },
             {
-              prop: 'preFlightNO',
-              label: '航班号',
-              desc: '进港航班编号',
+              prop: "preFlightNO",
+              label: "航班号",
+              desc: "进港航班编号",
               width: 80,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'preFlightDate',
-              label: '航班日期',
-              desc: '指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)',
-              width: 100
+              prop: "preFlightDate",
+              label: "航班日期",
+              desc: "指航班计划起飞日期(不变的,机票上),不是预计起飞日期(预计起飞时间可能多个),也不是实际起飞日期(实际起飞等于最后预计)",
+              width: 100,
             },
             {
-              prop: 'preAirport',
-              label: '起飞航站',
-              desc: '指进港航班的起飞机场三字码',
+              prop: "preAirport",
+              label: "起飞航站",
+              desc: "指进港航班的起飞机场三字码",
               width: 100,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'actualLandingTime',
-              label: '降落时间',
-              desc: '指航班预计到达时间,数据是变化的,仅显示最新结果',
-              width: 100
+              prop: "actualLandingTime",
+              label: "降落时间",
+              desc: "指航班预计到达时间,数据是变化的,仅显示最新结果",
+              width: 100,
             },
             {
-              prop: 'landingBuild',
-              label: '降落航站楼',
-              desc: '指航班降落后位于机场的哪个航站楼',
+              prop: "landingBuild",
+              label: "降落航站楼",
+              desc: "指航班降落后位于机场的哪个航站楼",
               width: 98,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'carousel',
-              label: '行李转盘',
-              desc: '指航班到达后行李提取的地方,仅显示最新信息',
+              prop: "carousel",
+              label: "行李转盘",
+              desc: "指航班到达后行李提取的地方,仅显示最新信息",
               width: 100,
               filterable: true,
-              sortable: true
+              sortable: true,
             },
             {
-              prop: 'standForLanding',
-              label: '降落停机位',
-              desc: '指航班的停机位代码,数据是变化的,仅显示最新信息',
+              prop: "standForLanding",
+              label: "降落停机位",
+              desc: "指航班的停机位代码,数据是变化的,仅显示最新信息",
               width: 98,
               filterable: true,
-              sortable: true
-            }
+              sortable: true,
+            },
             // {
             //   prop: 'inTransferBaggageCount',
             //   label: '中转行李数',
@@ -473,8 +389,8 @@ export default {
             //   desc: '指航班在本航站实际已经中转至对应航班的行李数量',
             //   width: 100
             // }
-          ]
-        }
+          ],
+        },
       ],
       loading: false,
       AirportList: [],
@@ -487,30 +403,30 @@ export default {
       spanArr: [],
       contactDot: 0,
       flag: 0,
-      table: null
-    }
+      table: null,
+    };
   },
   computed: {
     singleDay() {
-      return this.startDate === this.endDate
-    }
+      return this.startDate === this.endDate;
+    },
   },
   created() {
     // this.getAirPortData()
   },
   mounted() {
-    this.$refs['form'].validateField('flightDate')
-    this.getAirPortData()
-    this.table = this.$refs.table.bodyWrapper
-    const that = this
-    this.table.addEventListener('scroll', () => {
-      that.scrollTop = this.table.scrollTop
-    })
+    this.$refs["form"].validateField("flightDate");
+    this.getAirPortData();
+    this.table = this.$refs.table.bodyWrapper;
+    const that = this;
+    this.table.addEventListener("scroll", () => {
+      that.scrollTop = this.table.scrollTop;
+    });
   },
   activated() {
-    this.table.scrollTop = this.scrollTop
-    this.getTableData()
-    this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferDepartureTable)
+    this.table.scrollTop = this.scrollTop;
+    this.getTableData();
+    this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferDepartureTable);
     // const { startDate, endDate } = this.$route.query
     // Object.entries(this.$route.query).forEach(([key, value]) => {
     //   if ((value ?? '') !== '' && JSON.stringify(value) !== '[]') {
@@ -526,41 +442,41 @@ export default {
   },
   deactivated() {
     if (this.loopEvent) {
-      clearInterval(this.loopEvent)
-      this.loopEvent = null
+      clearInterval(this.loopEvent);
+      this.loopEvent = null;
     }
   },
   beforeDestroy() {
     if (this.loopEvent) {
-      clearInterval(this.loopEvent)
-      this.loopEvent = null
+      clearInterval(this.loopEvent);
+      this.loopEvent = null;
     }
   },
   methods: {
     resetLoopEvent() {
-      this.loading = true
-      this.hasSetTableScroll = false
-      this.loopEvent && clearInterval(this.loopEvent)
-      this.getTableData()
-      this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferDepartureTable)
+      this.loading = true;
+      this.hasSetTableScroll = false;
+      this.loopEvent && clearInterval(this.loopEvent);
+      this.getTableData();
+      this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferDepartureTable);
     },
     headerCellClass({ row, column }) {
-      const classes = []
-      const rule = this.tableDataSortRules[column.property]
+      const classes = [];
+      const rule = this.tableDataSortRules[column.property];
       if (rule) {
-        classes.push(rule)
+        classes.push(rule);
       }
-      return classes.join(' ')
+      return classes.join(" ");
     },
     tableRowClassName({ row, rowIndex }) {
-      const classes = []
+      const classes = [];
       if (row.hasTakeOff) {
-        classes.push('bgl-hui')
+        classes.push("bgl-hui");
         if (rowIndex === this.leaveCount - 1) {
-          classes.push('redBorder')
+          classes.push("redBorder");
         }
       }
-      return classes.join(' ')
+      return classes.join(" ");
     },
     changeView() {
       // const query = {
@@ -573,36 +489,36 @@ export default {
       //   path: '/transfer/arrival',
       //   query
       // })
-      this.$router.push('/transfer/arrival')
+      this.$router.push("/transfer/arrival");
     },
     airPortChange() {
-      this.getAviationData()
-      this.upAviationData()
-      this.resetLoopEvent()
+      this.getAviationData();
+      this.upAviationData();
+      this.resetLoopEvent();
     },
     dateChangeHandler() {
-      this.getAviationData()
-      this.upAviationData()
-      this.resetLoopEvent()
+      this.getAviationData();
+      this.upAviationData();
+      this.resetLoopEvent();
     },
     // 选择机场
     async getAirPortData() {
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureAirLtId,
-          dataContent: []
-        })
+          dataContent: [],
+        });
         if (Number(res.code) === 0) {
-          this.AirportList = res.returnData.listValues
-          this.formData.currentAirport = 'PEK'
-          this.getAviationData()
-          this.upAviationData()
-          this.resetLoopEvent()
+          this.AirportList = res.returnData.listValues;
+          this.formData.currentAirport = "PEK";
+          this.getAviationData();
+          this.upAviationData();
+          this.resetLoopEvent();
         } else {
-          this.$message.error(res.message)
+          this.$message.error(res.message);
         }
       } catch (error) {
-        console.log('出错了', error.message || error)
+        console.log("出错了", error.message || error);
       }
     },
     // 选择航司
@@ -610,15 +526,15 @@ export default {
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureAviJoinLtId,
-          dataContent: [this.formData.currentAirport]
-        })
+          dataContent: [this.formData.currentAirport],
+        });
         if (Number(res.code) === 0) {
-          this.carrierProps = res.returnData.listValues
+          this.carrierProps = res.returnData.listValues;
         } else {
-          this.$message.error(res.message)
+          this.$message.error(res.message);
         }
       } catch (error) {
-        console.log('出错了', error.message || error)
+        console.log("出错了", error.message || error);
       }
     },
     // 选择航司
@@ -626,15 +542,15 @@ export default {
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureAviLeaveLtId,
-          dataContent: [this.formData.currentAirport]
-        })
+          dataContent: [this.formData.currentAirport],
+        });
         if (Number(res.code) === 0) {
-          this.carrierPropsop = res.returnData.listValues
+          this.carrierPropsop = res.returnData.listValues;
         } else {
-          this.$message.error(res.message)
+          this.$message.error(res.message);
         }
       } catch (error) {
-        console.log('出错了', error.message || error)
+        console.log("出错了", error.message || error);
       }
     },
     // 获取表单下拉框数据
@@ -650,10 +566,10 @@ export default {
     // 获取表格数据
     async getTableData() {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
-        return
+        return;
       }
-      const arrs1 = [this.formData.inboundCarrier.length === 0 ? '' : this.formData.inboundCarrier[0]]
-      const arrs2 = [this.formData.outgoingAirline.length === 0 ? '' : this.formData.outgoingAirline[0]]
+      const arrs1 = [this.formData.inboundCarrier.length === 0 ? "" : this.formData.inboundCarrier[0]];
+      const arrs2 = [this.formData.outgoingAirline.length === 0 ? "" : this.formData.outgoingAirline[0]];
       const arr = [
         this.formData.currentAirport,
         this.startDate,
@@ -663,123 +579,123 @@ export default {
         ...arrs1,
         ...arrs2,
         ...arrs2,
-        ...arrs2
+        ...arrs2,
         // this.formData.inboundCarrier,
         // this.formData.outgoingAirline,
         // JSON.stringify(this.formData.inboundCarrier),
         // JSON.stringify(this.formData.outgoingAirline),
-      ]
+      ];
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureTableLtId,
-          dataContent: [...arr]
-        })
+          dataContent: [...arr],
+        });
         if (Number(res.code) === 0) {
-          this.initTableData(res.returnData.listValues)
+          this.initTableData(res.returnData.listValues);
         } else {
-          console.log(res.message)
+          console.log(res.message);
         }
-        this.loading = false
+        this.loading = false;
       } catch (error) {
         if (this.loopEvent) {
-          clearInterval(this.loopEvent)
-          this.loopEvent = null
+          clearInterval(this.loopEvent);
+          this.loopEvent = null;
         }
-        this.loading = false
-        console.log('出错了', error.message || error)
+        this.loading = false;
+        console.log("出错了", error.message || error);
       }
     },
     initTableData(tableData) {
-      this.leaveCount = 0
-      this.baggageCount = 0
-      tableData.forEach(item => {
+      this.leaveCount = 0;
+      this.baggageCount = 0;
+      tableData.forEach((item) => {
         if (this.hasTakeOff(item)) {
-          this.leaveCount++
+          this.leaveCount++;
         }
-        this.baggageCount = this.baggageCount + item.outTransferBaggageCount
-      })
-      this.tableData = this._.sortBy(tableData, ['actualDepartureTime', 'flightNO', 'actualLandingTime', 'preFlightNO'])
-      setTableFilters(this.tableData, this.tableDataFilters)
-      this.toOrderNum(this.baggageCount)
+        this.baggageCount = this.baggageCount + item.outTransferBaggageCount;
+      });
+      this.tableData = this._.sortBy(tableData, ["actualDepartureTime", "flightNO", "actualLandingTime", "preFlightNO"]);
+      setTableFilters(this.tableData, this.tableDataFilters);
+      this.toOrderNum(this.baggageCount);
       this.$nextTick(() => {
-        this.setTableScroll()
-      })
+        this.setTableScroll();
+      });
     },
     hasTakeOff(flight) {
       if (flight.actualDepartureTime) {
-        const now = new Date()
-        const actualDepartureTime = new Date(flight.actualDepartureTime.replace('T', ' '))
-        flight['hasTakeOff'] = now > actualDepartureTime && !flight['flightCanceled']
+        const now = new Date();
+        const actualDepartureTime = new Date(flight.actualDepartureTime.replace("T", " "));
+        flight["hasTakeOff"] = now > actualDepartureTime && !flight["flightCanceled"];
       } else {
-        flight['hasTakeOff'] = false
+        flight["hasTakeOff"] = false;
       }
-      return flight['hasTakeOff']
+      return flight["hasTakeOff"];
     },
     setTableScroll() {
       if (!this.singleDay || this.hasSetTableScroll || this.leaveCount === 0) {
-        return
+        return;
       }
-      const table = this.$refs['table'].$el
-      const scrollParent = table.querySelector('.el-table__body-wrapper')
+      const table = this.$refs["table"].$el;
+      const scrollParent = table.querySelector(".el-table__body-wrapper");
       if (scrollParent.scrollHeight <= scrollParent.offsetHeight) {
-        return
+        return;
       }
-      const lastRow = table.querySelectorAll('.el-table__body tr')[this.leaveCount - 1]
+      const lastRow = table.querySelectorAll(".el-table__body tr")[this.leaveCount - 1];
       setTimeout(() => {
-        const scrollMid = lastRow.offsetTop + lastRow.offsetHeight - scrollParent.offsetHeight / 2
-        const scrollMax = scrollParent.scrollHeight - scrollParent.offsetHeight
+        const scrollMid = lastRow.offsetTop + lastRow.offsetHeight - scrollParent.offsetHeight / 2;
+        const scrollMax = scrollParent.scrollHeight - scrollParent.offsetHeight;
         if (scrollMid > 0) {
-          const scrollHeight = Math.min(scrollMid, scrollMax)
-          scrollParent.scrollTo(0, scrollHeight)
+          const scrollHeight = Math.min(scrollMid, scrollMax);
+          scrollParent.scrollTo(0, scrollHeight);
         }
-      }, 0)
-      this.hasSetTableScroll = true
+      }, 0);
+      this.hasSetTableScroll = true;
     },
     setNumberTransform() {
-      const numberItems = this.$refs.numberItem // 拿到数字的ref,计算元素数量
-      const numberArr = this.orderNum.filter(item => !isNaN(item))
+      const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
+      const numberArr = this.orderNum.filter((item) => !isNaN(item));
       // 结合CSS 对数字字符进行滚动,显示订单数量
       for (let index = 0; index < numberItems.length; index++) {
-        const elem = numberItems[index]
-        elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`
+        const elem = numberItems[index];
+        elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`;
       }
     },
 
     toOrderNum(num) {
-      num = num.toString()
+      num = num.toString();
       if (num.length < 6) {
-        num = '0' + num // 如未满八位数,添加"0"补位
-        this.toOrderNum(num) // 递归添加"0"补位
+        num = "0" + num; // 如未满八位数,添加"0"补位
+        this.toOrderNum(num); // 递归添加"0"补位
       } else if (num.length >= 6) {
-        this.orderNum = num.split('') // 将其便变成数据,渲染至滚动数组
+        this.orderNum = num.split(""); // 将其便变成数据,渲染至滚动数组
       } else {
         // 订单总量数字超过八位显示异常
-        this.$message.warning('总量数字过大')
+        this.$message.warning("总量数字过大");
       }
-      this.setNumberTransform()
+      this.setNumberTransform();
     },
     arraySpanMethod({ row, column, rowIndex, columnIndex }) {
       for (let i = 0; i < 7; i++) {
         if (columnIndex === i) {
-          const _row = this.spanArr[rowIndex]
-          const _col = _row > 0 ? 1 : 0
+          const _row = this.spanArr[rowIndex];
+          const _col = _row > 0 ? 1 : 0;
           return {
             rowspan: _row,
-            colspan: _col
-          }
+            colspan: _col,
+          };
         }
       }
     },
     exportHandler(refName, tableName) {
       if (this.loading) {
-        return
+        return;
       }
-      const table = this.$refs[refName].$el.cloneNode(true)
-      const fileName = `${tableName}-${this.currentAirport}-${this.startDate}-${this.endDate}.xlsx`
-      throttledExportToExcel(table, tableName, fileName, 2)
-    }
-  }
-}
+      const table = this.$refs[refName].$el.cloneNode(true);
+      const fileName = `${tableName}-${this.currentAirport}-${this.startDate}-${this.endDate}.xlsx`;
+      throttledExportToExcel(table, tableName, fileName, 2);
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -803,7 +719,7 @@ export default {
       optgroup,
       select,
       textarea {
-        font-family: Helvetica, 'Microsoft YaHei';
+        font-family: Helvetica, "Microsoft YaHei";
         font-size: 14px;
       }
       .el-switch__label {
@@ -909,7 +825,7 @@ export default {
       padding: 0;
       text-align: center;
       font-size: 14px;
-      font-family: Helvetica, 'Microsoft YaHei';
+      font-family: Helvetica, "Microsoft YaHei";
       letter-spacing: 0;
     }
     .cell-click {
@@ -943,7 +859,7 @@ export default {
         &.redBorder {
           position: relative;
           &::after {
-            content: '';
+            content: "";
             position: absolute;
             left: 0;
             bottom: 0;

+ 27 - 30
src/views/statisticsCharts/components/statisticsTabs.vue

@@ -1,45 +1,21 @@
 <template>
   <div class="statistics-tabs">
     <el-row :gutter="16" type="flex">
-      <el-col v-for="(tab, index) in tabList" :key="index" :span="4">
-        <el-dropdown
-          v-if="tab.children && tab.children.length"
-          placement="bottom"
-          @command="commandHandler"
-        >
+      <el-col v-for="(tab, index) in newTabList" :key="index" :span="4">
+        <el-dropdown v-if="tab.children && tab.children.length" placement="bottom" @command="commandHandler">
           <div :class="['tab-bar', { 'tab-active': activeIndex === index }]">
-            <img
-              class="tab-icon"
-              :src="activeIndex === index ? activeIcon : defaultIcon"
-              :alt="tab.title"
-            />
+            <img class="tab-icon" :src="activeIndex === index ? activeIcon : defaultIcon" :alt="tab.title" />
             <el-tooltip :content="tab.title" placement="top">
               <span class="tab-title">{{ tab.title }}</span>
             </el-tooltip>
             <i class="icon-arrow el-icon-caret-bottom" />
           </div>
           <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item
-              v-for="(childTab, childIndex) in tab.children"
-              :key="childIndex"
-              :command="[tab.path, childTab.path]"
-              >{{ childTab.title }}</el-dropdown-item
-            >
+            <el-dropdown-item v-for="(childTab, childIndex) in tab.children" :key="childIndex" :command="[tab.path, childTab.path]">{{ childTab.title }}</el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>
-        <div
-          v-else
-          :class="[
-            'tab-bar tab-bar-single',
-            { 'tab-active': activeIndex === index },
-          ]"
-          @click="clickHandler(tab.path)"
-        >
-          <img
-            class="tab-icon"
-            :src="activeIndex === index ? activeIcon : defaultIcon"
-            :alt="tab.title"
-          />
+        <div v-else :class="['tab-bar tab-bar-single', { 'tab-active': activeIndex === index }]" @click="clickHandler(tab.path)">
+          <img class="tab-icon" :src="activeIndex === index ? activeIcon : defaultIcon" :alt="tab.title" />
           <el-tooltip :content="tab.title" placement="top">
             <span class="tab-title">{{ tab.title }}</span>
           </el-tooltip>
@@ -60,6 +36,7 @@ export default {
         {
           title: "航司行李相关统计",
           path: "/statisticsCharts/airlineCompany",
+          roles: ["airline_baggage_statistics"],
           children: [
             {
               path: "flight",
@@ -102,6 +79,7 @@ export default {
         {
           path: "/statisticsCharts/passengerClassification",
           title: "旅客分类统计",
+          roles: ["passenger_luggage_classification_statistics"],
           children: [
             {
               path: "baggage",
@@ -136,6 +114,7 @@ export default {
         {
           path: "/statisticsCharts/flightClassification",
           title: "航班分类相关统计",
+          roles: ["statistics_related_to_flight_classification"],
           children: [
             {
               path: "flight",
@@ -154,10 +133,12 @@ export default {
         {
           path: "/statisticsCharts/node",
           title: "扫描节点与位置分析",
+          roles: ["scanning_node_and_location_analysis"],
         },
         {
           title: "报表统计",
           path: "/statisticsCharts/report",
+          roles: ["report_statistics"],
           children: [
             {
               path: "reportStatistics",
@@ -176,6 +157,7 @@ export default {
         {
           title: "特殊赔偿异常分类统计",
           path: "/statisticsCharts/specialClassification",
+          roles: ["special_compensation_exception_classification_statistics"],
           children: [
             {
               path: "special",
@@ -198,6 +180,7 @@ export default {
         {
           path: "/statisticsCharts/statisticalAnalysis",
           title: "统计分析",
+          roles: ["statistical_analysis"],
         },
       ],
       activeIndex: null,
@@ -218,6 +201,20 @@ export default {
       immediate: true,
     },
   },
+  computed: {
+    newTabList() {
+      const auths = JSON.parse(sessionStorage.getItem("userAuthList"));
+      const datas = [];
+      auths.forEach((element) => {
+        this.tabList.some((p) => {
+          if (element == p.roles) {
+            datas.push(p);
+          }
+        });
+      });
+      return datas;
+    },
+  },
   methods: {
     commandHandler(pathArray) {
       if (pathArray.some((path) => !path)) {