|
@@ -4,10 +4,11 @@
|
|
|
<div class="pl-b1">
|
|
|
<span class="title1-left">企业概况</span>
|
|
|
<ul class="plb1-content">
|
|
|
- <li v-for="item in listData_qygk.data" @click="handleOpenEntList(item)">
|
|
|
+ <!-- <li v-for="item in listData_qygk.data" @click="handleOpenEntList(item)"> -->
|
|
|
+ <li v-for="item in listData_qygk.data">
|
|
|
<img :src="item.icon" alt="">
|
|
|
<div>
|
|
|
- <span>{{item.name}}</span>
|
|
|
+ <span>{{ item.showName||item.name }}</span>
|
|
|
<span>{{item.count}}</span>
|
|
|
</div>
|
|
|
</li>
|
|
@@ -28,26 +29,31 @@
|
|
|
<div class="panel-right">
|
|
|
<div class="pr pr-b1">
|
|
|
<span class="title1-right">装卸监测</span>
|
|
|
- <div class="prb1-main-item" v-for="item in listData_zxjc.data">
|
|
|
- <i></i>
|
|
|
- <div>
|
|
|
- <div>
|
|
|
- <span>{{ item.boatName }}</span>
|
|
|
- <span>{{ item.type }}</span>
|
|
|
- </div>
|
|
|
- <span>{{ item.time }}</span>
|
|
|
+ <ul class="prb1-main">
|
|
|
+ <li class="prb1-main-item" v-for="item in listData_zxjc.data">
|
|
|
+ <i></i>
|
|
|
<div>
|
|
|
<div>
|
|
|
- <span>货物: </span>
|
|
|
- <span>{{ item.goods }}</span>
|
|
|
+ <span>{{ item.shipName }}</span>
|
|
|
+ <span>{{ item.state }}</span>
|
|
|
</div>
|
|
|
+ <span v-if="item.startWorkTime!=='--'">
|
|
|
+ {{ useDateFormat(item.startWorkTime, 'MM/DD HH:mm').value + ' - ' + useDateFormat(item.gpsTime, 'MM/DD HH:mm').value }}
|
|
|
+ </span>
|
|
|
+ <span v-else>--</span>
|
|
|
<div>
|
|
|
- <span>申报量(吨): </span>
|
|
|
- <span>{{ item.weight }}</span>
|
|
|
+ <div>
|
|
|
+ <span>货物: </span>
|
|
|
+ <span>{{ item.cargoName }}</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span>申报量(吨): </span>
|
|
|
+ <span>{{ item.declareTon }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
</div>
|
|
|
<div class="pr pr-b2">
|
|
|
<span class="title1-right">运行动态</span>
|
|
@@ -84,51 +90,105 @@ export default {
|
|
|
import { onMounted, reactive, nextTick, ref } from 'vue';
|
|
|
import { setEntThroughput5 } from '@/echarts/options';
|
|
|
import EntInfoList from './cpns/EntInfoList'
|
|
|
+ import { GetQygk, GetYxdt, GetZysb, GetZxjc, GetWggj } from '@/apis/yyjg'
|
|
|
+ import { useDateFormat } from '@vueuse/core'
|
|
|
|
|
|
onMounted(() => {
|
|
|
+ getData()
|
|
|
nextTick(() => {
|
|
|
setEntThroughput5(document.getElementById('chart-top5'), chartData_entThroughput5.data)
|
|
|
-
|
|
|
})
|
|
|
})
|
|
|
|
|
|
+ function getData() {
|
|
|
+ getData_qygk()
|
|
|
+ getData_yxdt()
|
|
|
+ getData_zysb()
|
|
|
+ getData_zxjc()
|
|
|
+ getData_wggj()
|
|
|
+ }
|
|
|
+
|
|
|
+ function getData_qygk() {
|
|
|
+ GetQygk().then(res => {
|
|
|
+ res.data.forEach(i => {
|
|
|
+ listData_qygk.data.forEach(j => {
|
|
|
+ if(i.certtype === j.name) {
|
|
|
+ j.count = i.id
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const entInfoListShow = ref(false)
|
|
|
|
|
|
const listData_qygk = reactive({data: [
|
|
|
- { name: '港口经营企业', count: 509, icon: require('../../assets/imgs/page_yyjg/icon-gkjy.png') },
|
|
|
- { name: '港口经营备案企业', count: 374, icon: require('../../assets/imgs/page_yyjg/icon-gkjy.png') },
|
|
|
- { name: '国内水运企业', count: 158, icon: require('../../assets/imgs/page_yyjg/icon-gnsy.png') },
|
|
|
- { name: '国内船舶管理企业', count: 75, icon: require('../../assets/imgs/page_yyjg/icon-gnsy.png') }
|
|
|
+ { name: '港口经营企业', count: 0, icon: require('../../assets/imgs/page_yyjg/icon-gkjy.png') },
|
|
|
+ { name: '港口经营备案企业', count: 0, icon: require('../../assets/imgs/page_yyjg/icon-gkjy.png') },
|
|
|
+ { name: '水路运输管理企业', showName: '国内水运企业', count: 0, icon: require('../../assets/imgs/page_yyjg/icon-gnsy.png') },
|
|
|
+ { name: '国内船舶管理企业', count: 0, icon: require('../../assets/imgs/page_yyjg/icon-gnsy.png') }
|
|
|
]})
|
|
|
|
|
|
+ function getData_zysb() {
|
|
|
+ GetZysb().then(res => {
|
|
|
+ listData_zysb.data.forEach(i => {
|
|
|
+ i.count = res.data[i.fieldName]
|
|
|
+ })
|
|
|
+ chartData_entThroughput5.data = res.data.topList.sort((a,b) => b.ton - a.ton)
|
|
|
+ setEntThroughput5(document.getElementById('chart-top5'), chartData_entThroughput5.data)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const listData_zysb = reactive({data: [
|
|
|
- { name: '当天货物装卸申报数', count: 189, unit: '件' },
|
|
|
- { name: '当天散货装卸吞吐量', count: 208123, unit: '吨' }
|
|
|
+ { name: '当天货物装卸申报数', fieldName:'count', count: 0, unit: '件' },
|
|
|
+ { name: '当天散货装卸吞吐量', fieldName:'ton', count: 0, unit: '吨' }
|
|
|
]})
|
|
|
|
|
|
const chartData_entThroughput5 = reactive({data: [
|
|
|
- { entName: '上海复闵', value: 263662 },
|
|
|
- { entName: '宝山钢铁股', value: 221779 },
|
|
|
- { entName: '中化东方上海哈哈', value: 203452 },
|
|
|
- { entName: '上海中有中燃吃不吃', value: 176576 },
|
|
|
- { entName: '上海城建物资', value: 127876 }
|
|
|
+ { unitName: '', ton: 0 },
|
|
|
+ { unitName: '', ton: 0 },
|
|
|
+ { unitName: '', ton: 0 },
|
|
|
+ { unitName: '', ton: 0 },
|
|
|
+ { unitName: '', ton: 0 }
|
|
|
]})
|
|
|
|
|
|
+ function getData_zxjc() {
|
|
|
+ GetZxjc().then(res => {
|
|
|
+ listData_zxjc.data = res.data.Rows
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const listData_zxjc = reactive({data: [
|
|
|
- { boatName: '苏淮货16058', type: '进港', time: '01/09 19:03-01/10 20:00', goods: '钢材', weight: 2030 },
|
|
|
- { boatName: '祥瀚8', type: '进港', time: '01/09 19:03-01/10 20:00', goods: '燃料油', weight: 572 }
|
|
|
+ { shipName: '--', state: '--', startWorkTime: '--', gpsTime: '--', cargoName: '--', declareTon: 0 },
|
|
|
+ { shipName: '--', state: '--', startWorkTime: '--', gpsTime: '--', cargoName: '--', declareTon: 0 }
|
|
|
]})
|
|
|
|
|
|
+ function getData_yxdt() {
|
|
|
+ GetYxdt().then(res => {
|
|
|
+ cataData_yxdt.data.forEach(i => {
|
|
|
+ i.value = res.data[i.fieldName]
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const cataData_yxdt = reactive({data: [
|
|
|
- { title: '即将作业船舶数', value: 59 },
|
|
|
- { title: '作业完成船舶数', value: 17 },
|
|
|
- { title: '作业中船舶数', value: 36 },
|
|
|
+ { title: '即将作业船舶数', fieldName: 'willWorkCount', value: 0 },
|
|
|
+ { title: '作业完成船舶数', fieldName: 'finishWorkCount', value: 0 },
|
|
|
+ { title: '作业中船舶数', fieldName: 'workingCount', value: 0 },
|
|
|
]})
|
|
|
|
|
|
+ function getData_wggj() {
|
|
|
+ GetWggj().then(res => {
|
|
|
+ listData_wggj.data.forEach(i => {
|
|
|
+ i.value = res.data[i.fieldName]
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const listData_wggj = reactive({data: [
|
|
|
- { type: '超等级靠泊', value: 145 },
|
|
|
- { type: '港口经营许可证到期', value: 123 },
|
|
|
- { type: '危险货物作业附证到期', value: 246 },
|
|
|
+ { type: '超等级靠泊', fieldName: 'overGrade', value: 0 },
|
|
|
+ { type: '港口经营许可证到期', fieldName: 'portExpire', value: 0 },
|
|
|
+ { type: '危险货物作业附证到期', fieldName: 'dangerExpire', value: 0 },
|
|
|
]})
|
|
|
|
|
|
const listData_entInfo = reactive({data: [
|
|
@@ -149,6 +209,7 @@ export default {
|
|
|
entInfoListShow.value = true
|
|
|
}
|
|
|
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
@@ -242,7 +303,7 @@ export default {
|
|
|
.pl-b2 {
|
|
|
.list-item {
|
|
|
box-sizing: border-box;
|
|
|
- width: 284px;
|
|
|
+ width: 290px;
|
|
|
height: 28px;
|
|
|
margin-bottom: 18px;
|
|
|
padding: 0 10px 7px 26px;
|
|
@@ -302,6 +363,13 @@ export default {
|
|
|
}
|
|
|
|
|
|
.pr-b1 {
|
|
|
+ .prb1-main {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: flex-end;
|
|
|
+ height: 210px;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
.prb1-main-item {
|
|
|
display: flex;
|
|
|
align-items: center;
|