|
@@ -64,6 +64,49 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</div>
|
|
|
+ <div class="screen-left">
|
|
|
+ <div class="sl-head">
|
|
|
+ <img src="./img/left_icon-1.png"/>
|
|
|
+ <div>数据调用和使用</div>
|
|
|
+ </div>
|
|
|
+ <div class="sl-content">
|
|
|
+ <div class="slc-item">
|
|
|
+ <div class="slc-item-icon"><img src="./img/left_icon-2.png"/></div>
|
|
|
+ <div class="slc-item-title"><span>实时用户数</span></div>
|
|
|
+ <div class="slc-item-count">
|
|
|
+ <CountTo :startVal="leftValue.ssyhs.startVal" :endVal="leftValue.ssyhs.endVal" :duration="1500"></CountTo>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="slc-item">
|
|
|
+ <div class="slc-item-icon"><img src="./img/left_icon-3.png"/></div>
|
|
|
+ <div class="slc-item-title"><span>流动用户数</span></div>
|
|
|
+ <div class="slc-item-count">
|
|
|
+ <CountTo :startVal="leftValue.ldyhs.startVal" :endVal="leftValue.ldyhs.endVal" :duration="1500"></CountTo>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="slc-item">
|
|
|
+ <div class="slc-item-icon"><img src="./img/left_icon-4.png"/></div>
|
|
|
+ <div class="slc-item-title"><span>旅游用户数</span></div>
|
|
|
+ <div class="slc-item-count">
|
|
|
+ <CountTo :startVal="leftValue.lyyhs.startVal" :endVal="leftValue.lyyhs.endVal" :duration="1500"></CountTo>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="slc-item">
|
|
|
+ <div class="slc-item-icon"><img src="./img/left_icon-5.png"/></div>
|
|
|
+ <div class="slc-item-title"><span>过境用户数</span></div>
|
|
|
+ <div class="slc-item-count">
|
|
|
+ <CountTo :startVal="leftValue.gjyhs.startVal" :endVal="leftValue.gjyhs.endVal" :duration="1500"></CountTo>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="slc-item">
|
|
|
+ <div class="slc-item-icon"><img src="./img/left_icon-6.png"/></div>
|
|
|
+ <div class="slc-item-title"><span>境外用户数</span></div>
|
|
|
+ <div class="slc-item-count">
|
|
|
+ <CountTo :startVal="leftValue.jwyhs.startVal" :endVal="leftValue.jwyhs.endVal" :duration="1500"></CountTo>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<div v-show="showInfo" class="info-dialog" ref="ref_infoDialog">
|
|
|
<template v-for="(item, index) in InfoMapper">
|
|
|
<div class="info-dialog-block animate__animated">
|
|
@@ -113,10 +156,11 @@ import {
|
|
|
import {useStore} from 'vuex'
|
|
|
import {bgImgMapper, infoMapper, logoIcon} from '../common/static'
|
|
|
import MessageCom from './message/index.vue'
|
|
|
+import CountTo from '@/components/vue-count-to/vue-countTo.vue';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'App',
|
|
|
- components: {MessageCom},
|
|
|
+ components: {MessageCom, CountTo},
|
|
|
setup() {
|
|
|
const store = useStore()
|
|
|
const that = (getCurrentInstance() as ComponentInternalInstance).appContext.config.globalProperties
|
|
@@ -131,7 +175,29 @@ export default defineComponent({
|
|
|
InfoMapper: infoMapper,
|
|
|
infoInput: '',
|
|
|
LogoIcon: logoIcon,
|
|
|
- showMessage: false
|
|
|
+ showMessage: false,
|
|
|
+ leftValue: {
|
|
|
+ ssyhs: {
|
|
|
+ startVal: 0,
|
|
|
+ endVal: 0
|
|
|
+ },
|
|
|
+ ldyhs: {
|
|
|
+ startVal: 0,
|
|
|
+ endVal: 0
|
|
|
+ },
|
|
|
+ lyyhs: {
|
|
|
+ startVal: 0,
|
|
|
+ endVal: 0
|
|
|
+ },
|
|
|
+ gjyhs: {
|
|
|
+ startVal: 0,
|
|
|
+ endVal: 0
|
|
|
+ },
|
|
|
+ jwyhs: {
|
|
|
+ startVal: 0,
|
|
|
+ endVal: 0
|
|
|
+ },
|
|
|
+ }
|
|
|
});
|
|
|
const switchInfo = (ind) => {
|
|
|
if (ind === state.infoIndex) {
|
|
@@ -158,7 +224,19 @@ export default defineComponent({
|
|
|
const toHref = (val: { href: string | URL | undefined }) => {
|
|
|
window.open(that.$util.formatUrlByInfo(val.href), '_blank')
|
|
|
}
|
|
|
+ const initLeftCount = () => {
|
|
|
+ const handle = () => {
|
|
|
+ Object.entries(state.leftValue).forEach(([k, v], i) => {
|
|
|
+ v.endVal = that.$util.randomNum(0, 99999999)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ handle()
|
|
|
+ setInterval(() => {
|
|
|
+ handle()
|
|
|
+ }, 5000)
|
|
|
+ }
|
|
|
onMounted(() => {
|
|
|
+ initLeftCount()
|
|
|
setInterval(() => {
|
|
|
const len = BgImgMapper.length - 1
|
|
|
if (state.bgImgIndex === len) {
|
|
@@ -220,13 +298,14 @@ export default defineComponent({
|
|
|
animation-duration: 5s;
|
|
|
}
|
|
|
}
|
|
|
+ $screenLogoHeight: 147px;
|
|
|
.screen-logo {
|
|
|
z-index: 2;
|
|
|
position: absolute;
|
|
|
top: 0;
|
|
|
left: 0;
|
|
|
width: 1085px;
|
|
|
- height: 147px;
|
|
|
+ height: $screenLogoHeight;
|
|
|
background-image: url("../common/img/logo-bg.png");
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
@@ -399,6 +478,79 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ $screenLeftHeight: 511px;
|
|
|
+ .screen-left {
|
|
|
+ height: $screenLeftHeight;
|
|
|
+ position: absolute;
|
|
|
+ z-index: 2;
|
|
|
+ left: 27px;
|
|
|
+ top: calc((100% - #{$screenLogoHeight} - #{$screenHrefHeight} - #{$screenLeftHeight}) / 2 + #{$screenLogoHeight});
|
|
|
+ .sl-head {
|
|
|
+ background: url('./img/left_bg-1.png');
|
|
|
+ width: 401px;
|
|
|
+ height: 46px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ >img {
|
|
|
+ margin: 0 10px 0 26px;
|
|
|
+ }
|
|
|
+ >div {
|
|
|
+ font-size: 26px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #FFFFFF;
|
|
|
+ background: linear-gradient(0deg, #FFFFFF 0%, #c1eaff 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .sl-content {
|
|
|
+ .slc-item {
|
|
|
+ margin-top: 10px;
|
|
|
+ background: url("./img/left_bg-2.png");
|
|
|
+ width: 404px;
|
|
|
+ height: 83px;
|
|
|
+ position: relative;
|
|
|
+ .slc-item-icon {
|
|
|
+ position: absolute;
|
|
|
+ left: 15px;
|
|
|
+ }
|
|
|
+ .slc-item-title {
|
|
|
+ background: url("./img/left_bg-3.png");
|
|
|
+ width: 276px;
|
|
|
+ height: 24px;
|
|
|
+ top: 12px;
|
|
|
+ left: 78px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ position: absolute;
|
|
|
+ padding-left: 25px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ >span {
|
|
|
+ width: 100px;
|
|
|
+ font-size: 18px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 400;
|
|
|
+ font-style: italic;
|
|
|
+ color: #D1D6DF;
|
|
|
+ line-height: 32px;
|
|
|
+ background: linear-gradient(0deg, #ACDDFF 0%, #FFFFFF 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .slc-item-count {
|
|
|
+ position: absolute;
|
|
|
+ right: 106px;
|
|
|
+ bottom: 12px;
|
|
|
+ font-size: 30px;
|
|
|
+ font-family: fantasy;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #32DCFB;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
$infoItemWidth: 350px;
|
|
|
$infoItemActiveWidth: 1425px;
|
|
|
$infoItemSplit: 10px;
|