|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<div class="dashboard">
|
|
|
- <ComHead :tabs-index="3" />
|
|
|
+ <ComHead :tabs-index="2" />
|
|
|
<div class="dashboard-content">
|
|
|
<div class="dashboard-content-top flex">
|
|
|
<div class="dashboard-content-top-left">
|
|
@@ -9,7 +9,10 @@
|
|
|
<div class="dashboard-content-top-left-item-top-title">
|
|
|
小时峰值分析
|
|
|
</div>
|
|
|
- <div class="dashboard-content-top-left-item-top-time" @click="showDatePicker(showTimeMsg.HourlyPeak)">
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-left-item-top-time"
|
|
|
+ @click="showDatePicker(showTimeMsg.HourlyPeak)"
|
|
|
+ >
|
|
|
<el-icon color="#ffffff" size="18">
|
|
|
<Calendar />
|
|
|
</el-icon>
|
|
@@ -18,7 +21,13 @@
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-loading="loading1" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
|
|
|
+ <div
|
|
|
+ v-loading="loading1"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
+ element-loading-background="rgba(0,0,0, 0.3)"
|
|
|
+ class="dashboard-content-top-left-item-bottom"
|
|
|
+ >
|
|
|
<Echarts id="ww1" :option="hourlyPeakObj" />
|
|
|
</div>
|
|
|
</div>
|
|
@@ -27,7 +36,10 @@
|
|
|
<div class="dashboard-content-top-left-item-top-title">
|
|
|
日趋势分析
|
|
|
</div>
|
|
|
- <div class="dashboard-content-top-left-item-top-time" @click="showDatePicker(showTimeMsg.WaybillTrend)">
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-left-item-top-time"
|
|
|
+ @click="showDatePicker(showTimeMsg.WaybillTrend)"
|
|
|
+ >
|
|
|
<el-icon color="#ffffff" size="18">
|
|
|
<Calendar />
|
|
|
</el-icon>
|
|
@@ -36,7 +48,13 @@
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-loading="loading2" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
|
|
|
+ <div
|
|
|
+ v-loading="loading2"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
+ element-loading-background="rgba(0,0,0, 0.3)"
|
|
|
+ class="dashboard-content-top-left-item-bottom"
|
|
|
+ >
|
|
|
<Echarts id="ww12" :option="waybillTrendObj" />
|
|
|
</div>
|
|
|
</div>
|
|
@@ -45,7 +63,10 @@
|
|
|
<div class="dashboard-content-top-left-item-top-title">
|
|
|
目的站统计分析
|
|
|
</div>
|
|
|
- <div class="dashboard-content-bottom-left-top-time" @click="showDatePicker(showTimeMsg.NodePeak)">
|
|
|
+ <div
|
|
|
+ class="dashboard-content-bottom-left-top-time"
|
|
|
+ @click="showDatePicker(showTimeMsg.NodePeak)"
|
|
|
+ >
|
|
|
<el-icon color="#ffffff" size="18">
|
|
|
<Calendar />
|
|
|
</el-icon>
|
|
@@ -54,49 +75,146 @@
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-loading="loading3" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
|
|
|
+ <div
|
|
|
+ v-loading="loading3"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
+ element-loading-background="rgba(0,0,0, 0.3)"
|
|
|
+ class="dashboard-content-top-left-item-bottom"
|
|
|
+ >
|
|
|
<Echarts id="ww4" :option="nodePeakObj" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 地图 -->
|
|
|
<div class="dashboard-content-top-center">
|
|
|
- <div v-loading="loading4" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-center-top">
|
|
|
+ <div
|
|
|
+ v-loading="loading4"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
+ element-loading-background="rgba(0,0,0, 0.3)"
|
|
|
+ class="dashboard-content-top-center-top"
|
|
|
+ >
|
|
|
<div class="dashboard-content-top-center-top-list">
|
|
|
- <div class="dashboard-content-top-center-top-list-txt">今日计划航班数</div>
|
|
|
- <div class="dashboard-content-top-center-top-list-num">{{ flightNums }}</div>
|
|
|
+ <div class="dashboard-content-top-center-top-list-txt">
|
|
|
+ 今日计划航班数
|
|
|
+ </div>
|
|
|
+ <div class="dashboard-content-top-center-top-list-num">
|
|
|
+ {{ flightNums }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="dashboard-content-top-center-top-list">
|
|
|
- <div class="dashboard-content-top-center-top-list-txt">已完成航班数</div>
|
|
|
- <div class="dashboard-content-top-center-top-list-num">{{ stockNums }}</div>
|
|
|
+ <div class="dashboard-content-top-center-top-list-txt">
|
|
|
+ 已完成航班数
|
|
|
+ </div>
|
|
|
+ <div class="dashboard-content-top-center-top-list-num">
|
|
|
+ {{ stockNums }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="dashboard-content-top-center-top-list">
|
|
|
- <div class="dashboard-content-top-center-top-list-txt">已装载总量KG</div>
|
|
|
- <div class="dashboard-content-top-center-top-list-num">{{ weightNums }}</div>
|
|
|
+ <div class="dashboard-content-top-center-top-list-txt">
|
|
|
+ 已装载总量KG
|
|
|
+ </div>
|
|
|
+ <div class="dashboard-content-top-center-top-list-num">
|
|
|
+ {{ weightNums }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-loading="loading5" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-center-bottom">
|
|
|
- <div class="dashboard-content-top-center-bottom-title">航班动态跟踪</div>
|
|
|
+ <div
|
|
|
+ v-loading="loading5"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
+ element-loading-background="rgba(0,0,0, 0.3)"
|
|
|
+ class="dashboard-content-top-center-bottom"
|
|
|
+ >
|
|
|
+ <div class="dashboard-content-top-center-bottom-title">
|
|
|
+ 航班动态跟踪
|
|
|
+ </div>
|
|
|
<div class="dashboard-content-top-center-bottom-content">
|
|
|
<div class="dashboard-content-top-center-bottom-content-head">
|
|
|
- <div class="dashboard-content-top-center-bottom-content-head-list">公司/航班号</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-head-list">航班状态</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-head-list">经停/到达站</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-head-list">计划起飞</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-head-list">实际起飞</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-head-list">机型</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-head-list">类型</div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-head-list"
|
|
|
+ >
|
|
|
+ 公司/航班号
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-head-list"
|
|
|
+ >
|
|
|
+ 航班状态
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-head-list"
|
|
|
+ >
|
|
|
+ 经停/到达站
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-head-list"
|
|
|
+ >
|
|
|
+ 计划起飞
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-head-list"
|
|
|
+ >
|
|
|
+ 实际起飞
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-head-list"
|
|
|
+ >
|
|
|
+ 机型
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-head-list"
|
|
|
+ >
|
|
|
+ 类型
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="dashboard-content-top-center-bottom-content-bottom">
|
|
|
- <vue3-seamless-scroll :list="listData" :hover-stop="true" :hover="true" :step="0.3">
|
|
|
- <div v-for="(item,index) in listData" :key="index" class="dashboard-content-top-center-bottom-content-bottom-list">
|
|
|
- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.flightNo }}</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.flightState }}</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.airport }}</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.planTime }}</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.acTime }}</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.planeType }}</div>
|
|
|
- <div class="dashboard-content-top-center-bottom-content-bottom-list-txt">{{ item.KHT }}</div>
|
|
|
+ <vue3-seamless-scroll
|
|
|
+ :list="listData"
|
|
|
+ :hover-stop="true"
|
|
|
+ :hover="true"
|
|
|
+ :step="0.3"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in listData"
|
|
|
+ :key="index"
|
|
|
+ class="dashboard-content-top-center-bottom-content-bottom-list"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-bottom-list-txt"
|
|
|
+ >
|
|
|
+ {{ item.flightNo }}
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-bottom-list-txt"
|
|
|
+ >
|
|
|
+ {{ item.flightState }}
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-bottom-list-txt"
|
|
|
+ >
|
|
|
+ {{ item.airport }}
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-bottom-list-txt"
|
|
|
+ >
|
|
|
+ {{ item.planTime }}
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-bottom-list-txt"
|
|
|
+ >
|
|
|
+ {{ item.acTime }}
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-bottom-list-txt"
|
|
|
+ >
|
|
|
+ {{ item.planeType }}
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-center-bottom-content-bottom-list-txt"
|
|
|
+ >
|
|
|
+ {{ item.KHT }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</vue3-seamless-scroll>
|
|
|
</div>
|
|
@@ -109,7 +227,10 @@
|
|
|
<div class="dashboard-content-top-right-item-top-title">
|
|
|
航司统计分析
|
|
|
</div>
|
|
|
- <div class="dashboard-content-top-right-item-top-time" @click="showDatePicker(showTimeMsg.AirlineTraffic)">
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-right-item-top-time"
|
|
|
+ @click="showDatePicker(showTimeMsg.AirlineTraffic)"
|
|
|
+ >
|
|
|
<el-icon color="#ffffff" size="18">
|
|
|
<Calendar />
|
|
|
</el-icon>
|
|
@@ -118,7 +239,13 @@
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-loading="loading6" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-right-item-bottom">
|
|
|
+ <div
|
|
|
+ v-loading="loading6"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
+ element-loading-background="rgba(0,0,0, 0.3)"
|
|
|
+ class="dashboard-content-top-right-item-bottom"
|
|
|
+ >
|
|
|
<Echarts id="a1" :option="airlineTrafficObj" />
|
|
|
</div>
|
|
|
</div>
|
|
@@ -127,7 +254,10 @@
|
|
|
<div class="dashboard-content-top-right-item-top-title">
|
|
|
航班动态统计
|
|
|
</div>
|
|
|
- <div class="dashboard-content-top-right-item-top-time" @click="showDatePicker(showTimeMsg.AirlineAbnormal)">
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-right-item-top-time"
|
|
|
+ @click="showDatePicker(showTimeMsg.AirlineAbnormal)"
|
|
|
+ >
|
|
|
<el-icon color="#ffffff" size="18">
|
|
|
<Calendar />
|
|
|
</el-icon>
|
|
@@ -136,7 +266,13 @@
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-loading="loading7" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
|
|
|
+ <div
|
|
|
+ v-loading="loading7"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
+ element-loading-background="rgba(0,0,0, 0.3)"
|
|
|
+ class="dashboard-content-top-left-item-bottom"
|
|
|
+ >
|
|
|
<Echarts id="ww44" :option="airlineObj" />
|
|
|
</div>
|
|
|
</div>
|
|
@@ -145,7 +281,10 @@
|
|
|
<div class="dashboard-content-top-right-item-top-title">
|
|
|
拉货统计分析
|
|
|
</div>
|
|
|
- <div class="dashboard-content-top-right-item-top-time" @click="showDatePicker(showTimeMsg.PickingStatistics)">
|
|
|
+ <div
|
|
|
+ class="dashboard-content-top-right-item-top-time"
|
|
|
+ @click="showDatePicker(showTimeMsg.PickingStatistics)"
|
|
|
+ >
|
|
|
<el-icon color="#ffffff" size="18">
|
|
|
<Calendar />
|
|
|
</el-icon>
|
|
@@ -154,20 +293,47 @@
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-loading="loading8" element-loading-text="数据加载中..." element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(0,0,0, 0.3)" class="dashboard-content-top-left-item-bottom">
|
|
|
+ <div
|
|
|
+ v-loading="loading8"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
+ element-loading-background="rgba(0,0,0, 0.3)"
|
|
|
+ class="dashboard-content-top-left-item-bottom"
|
|
|
+ >
|
|
|
<Echarts id="ww45" :option="pickingObj" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <Dialog :flag="flag" msg-title="日期选择" @resetForm="resetForm" @submitForm="submitForm">
|
|
|
+ <Dialog
|
|
|
+ :flag="flag"
|
|
|
+ msg-title="日期选择"
|
|
|
+ @resetForm="resetForm"
|
|
|
+ @submitForm="submitForm"
|
|
|
+ >
|
|
|
<el-form :model="form" label-width="120px">
|
|
|
<el-form-item label="开始日期">
|
|
|
- <el-date-picker :disabled-date="disabledStartDate" v-model="form.startDate" type="date" placeholder="请选择开始日期" size="default" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
|
|
+ <el-date-picker
|
|
|
+ :disabled-date="disabledStartDate"
|
|
|
+ v-model="form.startDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择开始日期"
|
|
|
+ size="default"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="结束日期">
|
|
|
- <el-date-picker :disabled-date="disabledEndDate" v-model="form.endDate" type="date" placeholder="请选择结束日期" size="default" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
|
|
+ <el-date-picker
|
|
|
+ :disabled-date="disabledEndDate"
|
|
|
+ v-model="form.endDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择结束日期"
|
|
|
+ size="default"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</Dialog>
|
|
@@ -184,8 +350,12 @@ import Dialog from "@/components/dialog/index.vue";
|
|
|
import { usePublic, showTimeMsg } from "./hooks/usePublic";
|
|
|
import { parseTime, isValue } from "@/utils/validate";
|
|
|
import * as _ from "lodash";
|
|
|
-const { optionLeft, airCompaneBaggage, airlineAbnormalBaggage, getPublicData } =
|
|
|
- usePublic();
|
|
|
+const {
|
|
|
+ optionLeft,
|
|
|
+ airCompaneBaggage,
|
|
|
+ airlineAbnormalBaggage,
|
|
|
+ getPublicData,
|
|
|
+} = usePublic();
|
|
|
const timePickerName = ref<number>(0);
|
|
|
const flag = ref<boolean>(false);
|
|
|
const loading1 = ref<boolean>(false);
|