|
@@ -1,30 +1,18 @@
|
|
|
<template>
|
|
|
<div class="dashboard">
|
|
|
<div class="dashboard-scrollbar">
|
|
|
- <div
|
|
|
- v-loading="loading"
|
|
|
- element-loading-text="拼命加载中"
|
|
|
- element-loading-spinner="el-icon-loading"
|
|
|
- element-loading-background="rgba(0, 0, 0, 0.3)"
|
|
|
- class="dashboard-wrapper"
|
|
|
- >
|
|
|
+ <div v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.3)" class="dashboard-wrapper">
|
|
|
<div class="dashboard-card">
|
|
|
<div class="dashboard-card-wrapper">
|
|
|
<div class="dashboard-card-title">当日进港航班数</div>
|
|
|
<div class="dashboard-card-content">
|
|
|
- <CountBox
|
|
|
- :count-number="arrivalFlightCount"
|
|
|
- :count-length="9"
|
|
|
- />
|
|
|
+ <CountBox :count-number="arrivalFlightCount" :count-length="9" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="dashboard-card-wrapper">
|
|
|
<div class="dashboard-card-title">当日出港航班数</div>
|
|
|
<div class="dashboard-card-content">
|
|
|
- <CountBox
|
|
|
- :count-number="departureFlightCount"
|
|
|
- :count-length="9"
|
|
|
- />
|
|
|
+ <CountBox :count-number="departureFlightCount" :count-length="9" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -32,27 +20,12 @@
|
|
|
<div class="dashboard-card-wrapper">
|
|
|
<div class="dashboard-card-title">航司行李量排行</div>
|
|
|
</div>
|
|
|
- <div
|
|
|
- v-if="companyData.length"
|
|
|
- class="dashboard-card-content"
|
|
|
- >
|
|
|
- <vue-seamless-scroll
|
|
|
- class="scroll-table"
|
|
|
- :class-option="defaultOption"
|
|
|
- >
|
|
|
- <div
|
|
|
- v-for="item in companyData"
|
|
|
- :key="item.name"
|
|
|
- class="company-baggage-item"
|
|
|
- >
|
|
|
+ <div v-if="companyData.length" class="dashboard-card-content">
|
|
|
+ <vue-seamless-scroll class="scroll-table" :class-option="defaultOption">
|
|
|
+ <div v-for="item in companyData" :key="item.name" class="company-baggage-item">
|
|
|
<div class="company-name">{{ item.name }}</div>
|
|
|
<div class="company-progress">
|
|
|
- <el-progress
|
|
|
- :percentage="item.percentage"
|
|
|
- :color="customColor"
|
|
|
- :show-text="false"
|
|
|
- :stroke-width="8"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :percentage="item.percentage" :color="customColor" :show-text="false" :stroke-width="8"></el-progress>
|
|
|
</div>
|
|
|
<div class="company-count">{{ item.count }}</div>
|
|
|
</div>
|
|
@@ -63,18 +36,8 @@
|
|
|
<div class="dashboard-card-wrapper">
|
|
|
<div class="dashboard-card-title">
|
|
|
<span class="title-text">航站选择</span>
|
|
|
- <el-select
|
|
|
- v-model="currentAirport"
|
|
|
- placeholder="请选择航站"
|
|
|
- filterable
|
|
|
- default-first-option
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="option in aiportOptions"
|
|
|
- :key="option.value"
|
|
|
- :label="option.label"
|
|
|
- :value="option.value"
|
|
|
- />
|
|
|
+ <el-select v-model="currentAirport" placeholder="请选择航站" filterable default-first-option>
|
|
|
+ <el-option v-for="option in aiportOptions" :key="option.value" :label="option.label" :value="option.value" />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -83,11 +46,7 @@
|
|
|
<div class="dashboard-card-wrapper">
|
|
|
<div class="dashboard-card-title">当日行李量统计</div>
|
|
|
<div class="dashboard-card-content">
|
|
|
- <div
|
|
|
- v-for="item in baggageCountItems"
|
|
|
- :key="item.title"
|
|
|
- class="baggage-count-item"
|
|
|
- >
|
|
|
+ <div v-for="item in baggageCountItems" :key="item.title" class="baggage-count-item">
|
|
|
<div class="baggage-count-num">{{ item.num }}</div>
|
|
|
<div class="baggage-count-title">{{ item.title }}</div>
|
|
|
</div>
|
|
@@ -99,10 +58,7 @@
|
|
|
<div class="dashboard-card-title">当日行李目的地分布图</div>
|
|
|
</div>
|
|
|
<div class="dashboard-card-content">
|
|
|
- <MapCharts
|
|
|
- id="box-map"
|
|
|
- :option="boxMap"
|
|
|
- />
|
|
|
+ <MapCharts id="box-map" :option="boxMap" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="dashboard-card">
|
|
@@ -110,10 +66,7 @@
|
|
|
<div class="dashboard-card-title">每日小时行李处理量 - 进港</div>
|
|
|
</div>
|
|
|
<div class="dashboard-card-content">
|
|
|
- <BarCharts
|
|
|
- id="inHour"
|
|
|
- :option="inHourDataOption"
|
|
|
- />
|
|
|
+ <BarCharts id="inHour" :option="inHourDataOption" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="dashboard-card">
|
|
@@ -121,10 +74,7 @@
|
|
|
<div class="dashboard-card-title">每日小时行李处理量 - 出港</div>
|
|
|
</div>
|
|
|
<div class="dashboard-card-content">
|
|
|
- <BarCharts
|
|
|
- id="outHour"
|
|
|
- :option="outHourDataOption"
|
|
|
- />
|
|
|
+ <BarCharts id="outHour" :option="outHourDataOption" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="dashboard-card">
|
|
@@ -132,10 +82,7 @@
|
|
|
<div class="dashboard-card-title">每日小时行李处理量 - 中转</div>
|
|
|
</div>
|
|
|
<div class="dashboard-card-content">
|
|
|
- <BarCharts
|
|
|
- id="transHour"
|
|
|
- :option="transHourDataOption"
|
|
|
- />
|
|
|
+ <BarCharts id="transHour" :option="transHourDataOption" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -200,7 +147,7 @@ export default {
|
|
|
MapCharts,
|
|
|
VueSeamlessScroll,
|
|
|
},
|
|
|
- data() {
|
|
|
+ data () {
|
|
|
return {
|
|
|
loading: false,
|
|
|
arrivalFlightCount: 0,
|
|
@@ -255,7 +202,7 @@ export default {
|
|
|
type: 'continuous',
|
|
|
text: ['高', '低'],
|
|
|
min: 0,
|
|
|
- max: 20000,
|
|
|
+ max: 3000,
|
|
|
seriesIndex: [0, 2],
|
|
|
dimension: 0,
|
|
|
realtime: false,
|
|
@@ -333,7 +280,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
- defaultOption() {
|
|
|
+ defaultOption () {
|
|
|
return {
|
|
|
step: 0.5, // 数值越大速度滚动越快
|
|
|
limitMoveNum: 2, // 开始无缝滚动的数据量 //this.fourDatata.length
|
|
@@ -347,18 +294,18 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
watch: {
|
|
|
- currentAirport(val) {
|
|
|
+ currentAirport (val) {
|
|
|
if (val) {
|
|
|
this.getAllData()
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
- created() {
|
|
|
+ created () {
|
|
|
this.inHourDataOption.series[0].color = '#3FC9D5'
|
|
|
this.outHourDataOption.series[0].color = '#527CF5'
|
|
|
this.transHourDataOption.series[0].color = '#F5C871'
|
|
|
},
|
|
|
- mounted() {
|
|
|
+ mounted () {
|
|
|
const { auth_id } = this.$route.meta
|
|
|
if (auth_id) {
|
|
|
const { arrs } = getAuthData(auth_id)
|
|
@@ -372,7 +319,7 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
// 航站列表
|
|
|
- async getAiportList() {
|
|
|
+ async getAiportList () {
|
|
|
this.loading = true
|
|
|
try {
|
|
|
let params = {
|
|
@@ -406,7 +353,7 @@ export default {
|
|
|
this.loading = false
|
|
|
},
|
|
|
// 当日数量和小时数量
|
|
|
- async getDateData(serviceId) {
|
|
|
+ async getDateData (serviceId) {
|
|
|
try {
|
|
|
const {
|
|
|
code,
|
|
@@ -433,7 +380,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 航司行李量排行
|
|
|
- async getCompanyData() {
|
|
|
+ async getCompanyData () {
|
|
|
try {
|
|
|
this.companyData = []
|
|
|
const {
|
|
@@ -465,7 +412,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 当日行李分布
|
|
|
- async getMap() {
|
|
|
+ async getMap () {
|
|
|
try {
|
|
|
const {
|
|
|
code,
|
|
@@ -497,7 +444,7 @@ export default {
|
|
|
console.error(error)
|
|
|
}
|
|
|
},
|
|
|
- async getAllData() {
|
|
|
+ async getAllData () {
|
|
|
this.loading = true
|
|
|
try {
|
|
|
const serviceIdList = [
|
|
@@ -624,7 +571,7 @@ export default {
|
|
|
background: linear-gradient(270deg, rgba(118, 142, 184, 0.25), transparent);
|
|
|
position: relative;
|
|
|
&::before {
|
|
|
- content: '';
|
|
|
+ content: "";
|
|
|
display: block;
|
|
|
width: 0;
|
|
|
height: 0;
|
|
@@ -711,7 +658,7 @@ export default {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
&::before {
|
|
|
- content: url('../../assets/analysis/ic.png');
|
|
|
+ content: url("../../assets/analysis/ic.png");
|
|
|
display: block;
|
|
|
width: 72px;
|
|
|
height: 72px;
|