Jelajahi Sumber

航站BRS扫描统计

chenrui  2 tahun lalu
induk
melakukan
e759e39d65

+ 12 - 5
src/router/routes/routes-file-six.js

@@ -25,7 +25,7 @@ const statisticsChartsRoutes = {
           name: 'AirlineCompanyStatistics',
           hidden: true,
           component: {
-            render (h) {
+            render(h) {
               return h('router-view')
             }
           },
@@ -102,7 +102,7 @@ const statisticsChartsRoutes = {
           name: 'PassengerStatistics',
           hidden: true,
           component: {
-            render (h) {
+            render(h) {
               return h('router-view')
             }
           },
@@ -170,7 +170,7 @@ const statisticsChartsRoutes = {
           name: 'FlightClassificationStatistics',
           hidden: true,
           component: {
-            render (h) {
+            render(h) {
               return h('router-view')
             }
           },
@@ -214,7 +214,7 @@ const statisticsChartsRoutes = {
           name: 'Report',
           hidden: true,
           component: {
-            render (h) {
+            render(h) {
               return h('router-view')
             }
           },
@@ -232,6 +232,13 @@ const statisticsChartsRoutes = {
               hidden: true,
               component: () => import('@/views/statisticsCharts/views/report/transitTable'),
               meta: { title: '中转专项报表统计', roles: ['scanning_node_and_location_analysis'] }
+            },
+            {
+              path: 'scanningStatistics',
+              name: 'ScanningStatistics',
+              hidden: true,
+              component: () => import('@/views/statisticsCharts/views/report/scanningStatistics'),
+              meta: { title: '航站BRS扫描统计', roles: ['scanning_node_and_location_analysis'] }
             }
           ]
         },
@@ -241,7 +248,7 @@ const statisticsChartsRoutes = {
           name: 'SpecialStatistics',
           hidden: true,
           component: {
-            render (h) {
+            render(h) {
               return h('router-view')
             }
           },

+ 134 - 109
src/views/statisticsCharts/components/statisticsTabs.vue

@@ -2,23 +2,44 @@
   <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-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="[
+        <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">
+          ]"
+          @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>
@@ -30,190 +51,194 @@
 
 <script>
 export default {
-  name: 'StatisticsTabs',
-  data () {
+  name: "StatisticsTabs",
+  data() {
     return {
-      defaultIcon: require('@/assets/nav/ic_statistical_top_default.png'),
-      activeIcon: require('@/assets/nav/ic_statistical_top_check.png'),
+      defaultIcon: require("@/assets/nav/ic_statistical_top_default.png"),
+      activeIcon: require("@/assets/nav/ic_statistical_top_check.png"),
       tabList: [
         {
-          title: '航司行李相关统计',
-          path: '/statisticsCharts/airlineCompany',
+          title: "航司行李相关统计",
+          path: "/statisticsCharts/airlineCompany",
           children: [
             {
-              path: 'flight',
-              title: '航班量统计'
+              path: "flight",
+              title: "航班量统计",
             },
             {
-              path: 'baggage',
-              title: '行李量统计'
+              path: "baggage",
+              title: "行李量统计",
             },
             {
-              path: 'baggagePassenger',
-              title: '行李旅客量统计'
+              path: "baggagePassenger",
+              title: "行李旅客量统计",
             },
             {
-              path: 'specialBaggage',
-              title: '特殊行李量统计'
+              path: "specialBaggage",
+              title: "特殊行李量统计",
             },
             {
-              path: 'baggageAverage',
-              title: '平均行李量统计'
+              path: "baggageAverage",
+              title: "平均行李量统计",
             },
             {
-              path: 'abnormalBaggage',
-              title: '异常行李量统计'
+              path: "abnormalBaggage",
+              title: "异常行李量统计",
             },
             {
-              path: 'complaintBaggage',
-              title: '投诉行李量统计'
+              path: "complaintBaggage",
+              title: "投诉行李量统计",
             },
             {
-              path: 'compensationBaggage',
-              title: '赔偿行李量统计'
+              path: "compensationBaggage",
+              title: "赔偿行李量统计",
             },
             {
-              path: 'compensation',
-              title: '赔偿金额统计'
-            }
-          ]
+              path: "compensation",
+              title: "赔偿金额统计",
+            },
+          ],
         },
         {
-          path: '/statisticsCharts/passengerClassification',
-          title: '旅客分类统计',
+          path: "/statisticsCharts/passengerClassification",
+          title: "旅客分类统计",
           children: [
             {
-              path: 'baggage',
-              title: '行李量统计'
+              path: "baggage",
+              title: "行李量统计",
             },
             {
-              path: 'baggagePassenger',
-              title: '行李旅客量统计'
+              path: "baggagePassenger",
+              title: "行李旅客量统计",
             },
             {
-              path: 'specialBaggage',
-              title: '特殊行李量统计'
+              path: "specialBaggage",
+              title: "特殊行李量统计",
             },
             {
-              path: 'abnormalBaggage',
-              title: '异常行李量统计'
+              path: "abnormalBaggage",
+              title: "异常行李量统计",
             },
             {
-              path: 'complaintBaggage',
-              title: '投诉行李量统计'
+              path: "complaintBaggage",
+              title: "投诉行李量统计",
             },
             {
-              path: 'compensationBaggage',
-              title: '赔偿行李量统计'
+              path: "compensationBaggage",
+              title: "赔偿行李量统计",
             },
             {
-              path: 'compensation',
-              title: '赔偿金额统计'
-            }
-          ]
+              path: "compensation",
+              title: "赔偿金额统计",
+            },
+          ],
         },
         {
-          path: '/statisticsCharts/flightClassification',
-          title: '航班分类相关统计',
+          path: "/statisticsCharts/flightClassification",
+          title: "航班分类相关统计",
           children: [
             {
-              path: 'flight',
-              title: '航班量统计'
+              path: "flight",
+              title: "航班量统计",
             },
             {
-              path: 'baggage',
-              title: '行李量统计'
+              path: "baggage",
+              title: "行李量统计",
             },
             {
-              path: 'passenger',
-              title: '行李旅客量统计'
-            }
-          ]
+              path: "passenger",
+              title: "行李旅客量统计",
+            },
+          ],
         },
         {
-          path: '/statisticsCharts/node',
-          title: '扫描节点与位置分析'
+          path: "/statisticsCharts/node",
+          title: "扫描节点与位置分析",
         },
         {
-          title: '报表统计',
-          path: '/statisticsCharts/report',
+          title: "报表统计",
+          path: "/statisticsCharts/report",
           children: [
             {
-              path: 'reportStatistics',
-              title: '运送效率报表统计'
+              path: "reportStatistics",
+              title: "运送效率报表统计",
+            },
+            {
+              path: "transitTable",
+              title: "中转专项报表统计",
             },
             {
-              path: 'transitTable',
-              title: '中转专项报表统计'
-            }
-          ]
+              path: "ScanningStatistics",
+              title: "航站BRS扫描统计",
+            },
+          ],
         },
         {
-          title: '特殊赔偿异常分类统计',
-          path: '/statisticsCharts/specialClassification',
+          title: "特殊赔偿异常分类统计",
+          path: "/statisticsCharts/specialClassification",
           children: [
             {
-              path: 'special',
-              title: '特殊行李分类统计'
+              path: "special",
+              title: "特殊行李分类统计",
             },
             {
-              path: 'abnormal',
-              title: '异常行李分类统计'
+              path: "abnormal",
+              title: "异常行李分类统计",
             },
             {
-              path: 'compensationBaggage',
-              title: '赔偿行李分类统计'
+              path: "compensationBaggage",
+              title: "赔偿行李分类统计",
             },
             {
-              path: 'compensation',
-              title: '赔偿金额分类统计'
-            }
-          ]
+              path: "compensation",
+              title: "赔偿金额分类统计",
+            },
+          ],
         },
         {
-          path: '/statisticsCharts/statisticalAnalysis',
-          title: '统计分析'
+          path: "/statisticsCharts/statisticalAnalysis",
+          title: "统计分析",
         },
       ],
-      activeIndex: null
-    }
+      activeIndex: null,
+    };
   },
   watch: {
-    '$route.path': {
-      handler (path) {
-        let activeIndex = null
+    "$route.path": {
+      handler(path) {
+        let activeIndex = null;
         this.tabList.some((tab, index) => {
           if (path.includes(tab.path)) {
-            activeIndex = index
-            return true
+            activeIndex = index;
+            return true;
           }
-        })
-        this.activeIndex = activeIndex
+        });
+        this.activeIndex = activeIndex;
       },
-      immediate: true
-    }
+      immediate: true,
+    },
   },
   methods: {
-    commandHandler (pathArray) {
-      if (pathArray.some(path => !path)) {
-        this.$message.info('开发中')
-        return
+    commandHandler(pathArray) {
+      if (pathArray.some((path) => !path)) {
+        this.$message.info("开发中");
+        return;
       }
       this.$router.push({
-        path: pathArray.join('/')
-      })
+        path: pathArray.join("/"),
+      });
     },
-    clickHandler (path) {
+    clickHandler(path) {
       if (!path) {
-        this.$message.info('开发中')
-        return
+        this.$message.info("开发中");
+        return;
       }
       this.$router.push({
-        path
-      })
-    }
-  }
-}
+        path,
+      });
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>

+ 75 - 0
src/views/statisticsCharts/components/tableformbrs.vue

@@ -0,0 +1,75 @@
+<template>
+  <div class="data-table">
+    <div
+      :style="dataTableContentStyle"
+      v-loading="loading"
+      element-loading-text="拼命加载中"
+      element-loading-spinner="el-icon-loading"
+      element-loading-background="rgba(0, 0, 0, 0.8)"
+      class="data-table-content"
+    >
+      <template v-if="tableData.length">
+        <el-table :data="tableData" style="width: 100%">
+          <el-table-column prop="date" label="航站"> </el-table-column>
+          <el-table-column label="出港航班量">
+            <el-table-column prop="name" label="航班(架次)" width="240">
+            </el-table-column>
+            <el-table-column prop="province" label="行李(件数)" width="240">
+            </el-table-column>
+          </el-table-column>
+          <el-table-column label="扫描航班量">
+            <el-table-column prop="city" label="航班(架次)">
+            </el-table-column>
+            <el-table-column prop="address" label="行李(件数)">
+            </el-table-column>
+          </el-table-column>
+          <el-table-column label="扫描率">
+            <el-table-column prop="zip" label="航班"> </el-table-column>
+            <el-table-column prop="cp" label="行李"> </el-table-column>
+          </el-table-column>
+        </el-table>
+      </template>
+      <template v-else>
+        <NoData image-width="auto" image-height="100%" />
+      </template>
+    </div>
+  </div>
+</template>
+<script>
+import NoData from "@/components/nodata";
+export default {
+  data() {
+    return {
+      loading: false,
+      tableData: [
+        {
+          date: "wnz(7月)",
+          name: "409",
+          province: "18946",
+          city: "409",
+          address: "18294",
+          zip: "100%",
+          cp: "96.56%",
+        },
+      ],
+    };
+  },
+  components: {
+    NoData,
+  },
+  computed: {
+    dataTableContentStyle() {
+      const style = {};
+      if (this.minHeight) {
+        style["min-height"] = this.minHeight;
+      }
+      if (this.tableHeight) {
+        style["height"] = this.tableHeight;
+      }
+      return style;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 87 - 0
src/views/statisticsCharts/views/report/scanningStatistics.vue

@@ -0,0 +1,87 @@
+<template>
+  <!-- 航站BRS扫描统计 -->
+  <div class="statstics-wrapper">
+    <StatisticsHeader
+      title="航站BRS扫描统计"
+      :items="formItems"
+      :data="formData"
+      with-setting
+      :withSetting="false"
+      :withExport="false"
+    />
+    <tableformbrs
+      :rows="12"
+      label-width="140px"
+      :min-height="70"
+      width="800px"
+      tableHeight="750"
+    />
+  </div>
+</template>
+<script>
+import StatisticsHeader from "../../components/statisticsHeader.vue";
+import tableformbrs from "../../components/tableformbrs";
+export default {
+  name: "ReportStatistics",
+  data() {
+    return {
+      formData: {
+        airport: "",
+        dateTime: "",
+      },
+      formItems: [
+        {
+          prop: "airport",
+          inputType: "select",
+          placeholder: "航站选择",
+          filterable: true,
+          clearable: true,
+          // multiple: true,
+          disabled: true,
+          queryId: DATACONTENT_ID.nodeAirport,
+          setKey: "a2",
+          options: [],
+        },
+        {
+          prop: "interval",
+          inputType: "select",
+          placeholder: "时间维度",
+          requiredWarning: "请先选择统计时间维度",
+          clearable: true,
+          options: [
+            {
+              value: "日",
+              label: "按日统计",
+            },
+            {
+              value: "月",
+              label: "按月统计",
+            },
+            {
+              value: "季",
+              label: "按季统计",
+            },
+            {
+              value: "年",
+              label: "按年统计",
+            },
+          ],
+        },
+        {
+          prop: "dateTime",
+          inputType: "datePicker",
+          clearable: true,
+          width: "240px",
+          options: [],
+        },
+      ],
+    };
+  },
+  components: {
+    StatisticsHeader,
+    tableformbrs,
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>