|
@@ -1,431 +1,431 @@
|
|
|
<template>
|
|
|
- <div class="panel-left aside-left-inner">
|
|
|
- <div class="title-main">服务概览</div>
|
|
|
- <ul class="b-fwgl">
|
|
|
- <li v-for="item in panelData.serviceOverview">
|
|
|
- <img :src="item.icon" alt="">
|
|
|
- <div>
|
|
|
- <div>
|
|
|
- <!-- <span>{{ item.count }}</span> -->
|
|
|
- <NumberScroll :value="item.count" />
|
|
|
- <span>{{ item.unit }}</span>
|
|
|
- </div>
|
|
|
- <span>{{ item.label }}</span>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
-
|
|
|
- <div class="title-main">今日飞行</div>
|
|
|
- <div class="b-jrfx">
|
|
|
- <ul class="bj-left">
|
|
|
- <li v-for="item in panelData.flightSta">
|
|
|
- <img :src="item.icon" alt="">
|
|
|
- <div>
|
|
|
- <span>{{ item.label }}</span>
|
|
|
- <div>
|
|
|
- <!-- <span>{{ item.count.toLocaleString() }}</span> -->
|
|
|
- <NumberScroll :value="item.count" />
|
|
|
- <span>{{ item.unit }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- <div class="bj-right">
|
|
|
- <span class="chart-title">各类无人机</span>
|
|
|
- <div id="chart-jrfx"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="title-main">空域申请计划</div>
|
|
|
- <div class="b-kysq">
|
|
|
-
|
|
|
- <template v-if="layoutStore.sceneType==='gis'">
|
|
|
- <div class="title-sub">任务类型</div>
|
|
|
- <ul class="row-rwlx">
|
|
|
- <li v-for="(item, index) in panelData.taskApply" :style="{ marginTop: item.offsetTop }">
|
|
|
- <!-- <span>{{ item.count }}</span> -->
|
|
|
- <NumberScroll :value="item.count" />
|
|
|
- <span>{{ item.label }}</span>
|
|
|
- <img :src="getAssetsFile('page/stick-' + (index + 1) + '.png')" alt="">
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </template>
|
|
|
-
|
|
|
- <div class="title-sub">审批状态</div>
|
|
|
- <ul class="row-spzt">
|
|
|
- <li v-for="(item, index) in panelData.taskAudit" :class="{'active': pickedTaskStatus===item.label}" @click="handlePickType(item)">
|
|
|
- <!-- <span>{{ item.count }}</span> -->
|
|
|
- <NumberScroll :value="item.count" />
|
|
|
- <span>{{ item.label }}</span>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
-
|
|
|
- <table class="table-default my-2" v-if="layoutStore.sceneType==='ue'">
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th>申请时间</th>
|
|
|
- <th>起降场</th>
|
|
|
- <th>飞行单位/人</th>
|
|
|
- <th>任务类型</th>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
- <tbody class="h-36">
|
|
|
- <tr v-for="item in deliveryListFiltered">
|
|
|
- <td>{{ item.time }}</td>
|
|
|
- <td>{{ item.port }}</td>
|
|
|
- <td>{{ item.unit }}</td>
|
|
|
- <td>{{ item.type }}</td>
|
|
|
- </tr>
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
-
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
+ <div class="panel-left aside-left-inner">
|
|
|
+ <div class="title-main">服务概览</div>
|
|
|
+ <ul class="b-fwgl">
|
|
|
+ <li v-for="item in panelData.serviceOverview">
|
|
|
+ <img :src="item.icon" alt="" />
|
|
|
+ <div>
|
|
|
+ <div>
|
|
|
+ <!-- <span>{{ item.count }}</span> -->
|
|
|
+ <NumberScroll :value="item.count" />
|
|
|
+ <span>{{ item.unit }}</span>
|
|
|
+ </div>
|
|
|
+ <span>{{ item.label }}</span>
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+
|
|
|
+ <div class="title-main">今日飞行</div>
|
|
|
+ <div class="b-jrfx">
|
|
|
+ <ul class="bj-left">
|
|
|
+ <li v-for="item in panelData.flightSta">
|
|
|
+ <img :src="item.icon" alt="" />
|
|
|
+ <div>
|
|
|
+ <span>{{ item.label }}</span>
|
|
|
+ <div>
|
|
|
+ <!-- <span>{{ item.count.toLocaleString() }}</span> -->
|
|
|
+ <NumberScroll :value="item.count" />
|
|
|
+ <span>{{ item.unit }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <div class="bj-right">
|
|
|
+ <span class="chart-title">各类无人机</span>
|
|
|
+ <div id="chart-jrfx"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="title-main">空域申请计划</div>
|
|
|
+ <div class="b-kysq">
|
|
|
+ <template v-if="layoutStore.sceneType === 'gis'">
|
|
|
+ <div class="title-sub">任务类型</div>
|
|
|
+ <ul class="row-rwlx">
|
|
|
+ <li v-for="(item, index) in panelData.taskApply" :style="{ marginTop: item.offsetTop }">
|
|
|
+ <!-- <span>{{ item.count }}</span> -->
|
|
|
+ <NumberScroll :value="item.count" />
|
|
|
+ <span>{{ item.label }}</span>
|
|
|
+ <img :src="getAssetsFile('page/stick-' + (index + 1) + '.png')" alt="" />
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <div class="title-sub">审批状态</div>
|
|
|
+ <ul class="row-spzt">
|
|
|
+ <li
|
|
|
+ v-for="(item, index) in panelData.taskAudit"
|
|
|
+ :class="{ active: pickedTaskStatus === item.label }"
|
|
|
+ @click="handlePickType(item)">
|
|
|
+ <!-- <span>{{ item.count }}</span> -->
|
|
|
+ <NumberScroll :value="item.count" />
|
|
|
+ <span>{{ item.label }}</span>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+
|
|
|
+ <table class="table-default my-2" v-if="layoutStore.sceneType === 'ue'">
|
|
|
+ <thead>
|
|
|
+ <tr>
|
|
|
+ <th>申请时间</th>
|
|
|
+ <th>起降场</th>
|
|
|
+ <th>飞行单位/人</th>
|
|
|
+ <th>任务类型</th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
+ <tbody class="h-36">
|
|
|
+ <tr v-for="item in deliveryListFiltered">
|
|
|
+ <td>{{ item.time }}</td>
|
|
|
+ <td>{{ item.port }}</td>
|
|
|
+ <td>{{ item.unit }}</td>
|
|
|
+ <td>{{ item.type }}</td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { computed, onMounted, reactive, ref } from 'vue';
|
|
|
-import { getAssetsFile } from '@/utils/require';
|
|
|
-import { setJrfx } from '@/echarts/options';
|
|
|
-import useLayoutStore from '@/store/layout';
|
|
|
-import NumberScroll from '@/components/NumberScroll.vue';
|
|
|
+import { computed, onMounted, reactive, ref } from 'vue'
|
|
|
+import { getAssetsFile } from '@/utils/require'
|
|
|
+import { setJrfx } from '@/echarts/options'
|
|
|
+import useLayoutStore from '@/store/layout'
|
|
|
+import NumberScroll from '@/components/NumberScroll.vue'
|
|
|
|
|
|
const layoutStore = useLayoutStore()
|
|
|
|
|
|
const panelData = reactive({
|
|
|
- serviceOverview: [
|
|
|
- { label: '航线数量', count: 8, unit: '条', icon: getAssetsFile('page/icon-sta-hx.png') },
|
|
|
- { label: '空域数量', count: 25, unit: '块', icon: getAssetsFile('page/icon-sta-ky.png') },
|
|
|
- { label: '起降点数量', count: 9, unit: '个', icon: getAssetsFile('page/icon-sta-qjd.png') },
|
|
|
- { label: '航空器数量', count: 50, unit: '个', icon: getAssetsFile('page/icon-sta-hkq.png') },
|
|
|
- { label: '企业数量', count: 1, unit: '家', icon: getAssetsFile('page/icon-sta-qy.png') },
|
|
|
- { label: '操控员数', count: 10, unit: '人', icon: getAssetsFile('page/icon-sta-cky.png') },
|
|
|
- ],
|
|
|
- taskApply: [
|
|
|
- { label: '城配物流', count: 2313, offsetTop: '90px' },
|
|
|
- { label: '飞行表演', count: 1425, offsetTop: '37px' },
|
|
|
- { label: '医疗救护', count: 1462, offsetTop: '65px' },
|
|
|
- { label: '空中巡查', count: 2562, offsetTop: '0px' },
|
|
|
- { label: '空中浏览', count: 1638, offsetTop: '78px' },
|
|
|
- ],
|
|
|
- taskAudit: [
|
|
|
- { count: 9, label: '待审批' },
|
|
|
- { count: 5, label: '审核通过' },
|
|
|
- { count: 2, label: '审核不通过' },
|
|
|
- ],
|
|
|
- flightSta: [
|
|
|
- { label: '飞行架次', count: 1334, unit: '次', icon: getAssetsFile('page/icon-plane.png') },
|
|
|
- { label: '航时', count: 5448, unit: 'H', icon: getAssetsFile('page/icon-clock.png') },
|
|
|
- { label: '距离', count: 8720, unit: 'km', icon: getAssetsFile('page/icon-distance.png') },
|
|
|
- ],
|
|
|
- flightStaChart: [
|
|
|
- { type: '微型', count: 560 },
|
|
|
- { type: '轻型', count: 1460 },
|
|
|
- { type: '小型', count: 280 },
|
|
|
- { type: '中型', count: 460 },
|
|
|
- { type: '大型', count: 980 },
|
|
|
- ],
|
|
|
- deliveryList: [
|
|
|
- { time: '2025-02-21', port: '合生汇-黄兴公园', unit: '美团无人机', type: '城配物流', status: '待审批' },
|
|
|
- { time: '2025-02-21', port: '合生汇-黄兴公园', unit: '美团无人机', type: '医疗救护', status: '审核通过' },
|
|
|
- { time: '2025-02-21', port: '合生汇-黄兴公园', unit: '美团无人机', type: '城配物流', status: '审核不通过' },
|
|
|
- ]
|
|
|
+ serviceOverview: [
|
|
|
+ { label: '航线数量', count: 8, unit: '条', icon: getAssetsFile('page/icon-sta-hx.png') },
|
|
|
+ { label: '空域数量', count: 25, unit: '块', icon: getAssetsFile('page/icon-sta-ky.png') },
|
|
|
+ { label: '起降点数量', count: 9, unit: '个', icon: getAssetsFile('page/icon-sta-qjd.png') },
|
|
|
+ { label: '航空器数量', count: 50, unit: '个', icon: getAssetsFile('page/icon-sta-hkq.png') },
|
|
|
+ { label: '企业数量', count: 1, unit: '家', icon: getAssetsFile('page/icon-sta-qy.png') },
|
|
|
+ { label: '操控员数', count: 10, unit: '人', icon: getAssetsFile('page/icon-sta-cky.png') },
|
|
|
+ ],
|
|
|
+ taskApply: [
|
|
|
+ { label: '城配物流', count: 2313, offsetTop: '90px' },
|
|
|
+ { label: '飞行表演', count: 1425, offsetTop: '37px' },
|
|
|
+ { label: '医疗救护', count: 1462, offsetTop: '65px' },
|
|
|
+ { label: '空中巡查', count: 2562, offsetTop: '0px' },
|
|
|
+ { label: '空中浏览', count: 1638, offsetTop: '78px' },
|
|
|
+ ],
|
|
|
+ taskAudit: [
|
|
|
+ { count: 9, label: '待审批' },
|
|
|
+ { count: 5, label: '审核通过' },
|
|
|
+ { count: 2, label: '审核不通过' },
|
|
|
+ ],
|
|
|
+ flightSta: [
|
|
|
+ { label: '飞行架次', count: 1334, unit: '次', icon: getAssetsFile('page/icon-plane.png') },
|
|
|
+ { label: '航时', count: 5448, unit: 'H', icon: getAssetsFile('page/icon-clock.png') },
|
|
|
+ { label: '距离', count: 8720, unit: 'km', icon: getAssetsFile('page/icon-distance.png') },
|
|
|
+ ],
|
|
|
+ flightStaChart: [
|
|
|
+ { type: '微型', count: 560 },
|
|
|
+ { type: '轻型', count: 1460 },
|
|
|
+ { type: '小型', count: 280 },
|
|
|
+ { type: '中型', count: 460 },
|
|
|
+ { type: '大型', count: 980 },
|
|
|
+ ],
|
|
|
+ deliveryList: [
|
|
|
+ { time: '2025-02-21', port: '合生汇-黄兴公园', unit: '美团无人机', type: '城配物流', status: '待审批' },
|
|
|
+ { time: '2025-02-21', port: '合生汇-黄兴公园', unit: '美团无人机', type: '医疗救护', status: '审核通过' },
|
|
|
+ { time: '2025-02-21', port: '合生汇-黄兴公园', unit: '美团无人机', type: '城配物流', status: '审核不通过' },
|
|
|
+ ],
|
|
|
})
|
|
|
|
|
|
const pickedTaskStatus = ref('')
|
|
|
|
|
|
function handlePickType(item) {
|
|
|
- pickedTaskStatus.value = item.label === pickedTaskStatus.value? '': item.label
|
|
|
+ pickedTaskStatus.value = item.label === pickedTaskStatus.value ? '' : item.label
|
|
|
}
|
|
|
|
|
|
const deliveryListFiltered = computed(() => {
|
|
|
- return pickedTaskStatus.value? panelData.deliveryList.filter(i => i.status === pickedTaskStatus.value): panelData.deliveryList
|
|
|
+ return pickedTaskStatus.value
|
|
|
+ ? panelData.deliveryList.filter((i) => i.status === pickedTaskStatus.value)
|
|
|
+ : panelData.deliveryList
|
|
|
})
|
|
|
|
|
|
onMounted(() => {
|
|
|
- setJrfx(document.getElementById('chart-jrfx'), panelData.flightStaChart)
|
|
|
+ setJrfx(document.getElementById('chart-jrfx'), panelData.flightStaChart)
|
|
|
})
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.panel-left {
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: space-between;
|
|
|
-
|
|
|
- .b-fwgl {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- flex-wrap: wrap;
|
|
|
- height: 140px;
|
|
|
- align-content: space-between;
|
|
|
-
|
|
|
- li {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- width: 32%;
|
|
|
-
|
|
|
- img {
|
|
|
- width: 51px;
|
|
|
- height: 51px;
|
|
|
- margin-right: 7px;
|
|
|
- }
|
|
|
-
|
|
|
- &>div {
|
|
|
- &>div {
|
|
|
- margin-bottom: 7px;
|
|
|
- display: flex;
|
|
|
- align-items: end;
|
|
|
-
|
|
|
- &>span:first-child {
|
|
|
- margin-right: 5px;
|
|
|
- font-size: 24px;
|
|
|
- line-height: 20px;
|
|
|
- background: linear-gradient(0deg, #FFFFFF 0%, #8BBBFF 79%);
|
|
|
- -webkit-background-clip: text;
|
|
|
- -webkit-text-fill-color: transparent;
|
|
|
- }
|
|
|
-
|
|
|
- &>span:last-child {
|
|
|
- font-family: PingFang;
|
|
|
- font-size: 14px;
|
|
|
- line-height: 14px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- &>span {
|
|
|
- display: block;
|
|
|
- font-size: 16px;
|
|
|
- text-shadow: -7px 7px 10px #001121;
|
|
|
- background: url();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .b-kysq {
|
|
|
- margin: 0 10px;
|
|
|
-
|
|
|
- .row-rwlx {
|
|
|
- margin: -30px 0 30px;
|
|
|
- position: relative;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- height: 180px;
|
|
|
- padding: 0 10px;
|
|
|
- overflow: visible;
|
|
|
-
|
|
|
- &::after {
|
|
|
- content: '';
|
|
|
- display: block;
|
|
|
- position: absolute;
|
|
|
- height: 106px;
|
|
|
- width: 100%;
|
|
|
- bottom: -70px;
|
|
|
- left: 0;
|
|
|
- background: url('../../../assets/images/page/bg-plate.png') no-repeat;
|
|
|
- background-size: 100%;
|
|
|
- z-index: -1;
|
|
|
- }
|
|
|
-
|
|
|
- li {
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- span:first-child {
|
|
|
- font-size: 17px;
|
|
|
- font-size: 500;
|
|
|
- color: #A5BCFF;
|
|
|
- line-height: 22px;
|
|
|
- }
|
|
|
-
|
|
|
- span:nth-child(2) {
|
|
|
- font-size: 14px;
|
|
|
- color: #BEDFFF;
|
|
|
- line-height: 18px;
|
|
|
- }
|
|
|
-
|
|
|
- &:nth-child(4) {
|
|
|
- span:first-child {
|
|
|
- background: linear-gradient(0deg, #D7B669 0%, #FFFFFF 100%);
|
|
|
- -webkit-background-clip: text;
|
|
|
- -webkit-text-fill-color: transparent;
|
|
|
- }
|
|
|
-
|
|
|
- span:nth-child(2) {
|
|
|
- color: #D3BF83;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .row-spzt {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- margin-top: 10px;
|
|
|
-
|
|
|
- @mixin active {
|
|
|
- content: '';
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- top: 0;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- clip-path: polygon(0% 0%, 100% 0%, 99% 60%, 50% 90%, 0% 60%);
|
|
|
- z-index: -1;
|
|
|
- }
|
|
|
-
|
|
|
- li {
|
|
|
- position: relative;
|
|
|
- width: 117px;
|
|
|
- height: 110px;
|
|
|
- background: url('../../../assets/images/page/bg-rank-1.png');
|
|
|
- background-size: 100% !important;
|
|
|
- padding: 12px 0 20px;
|
|
|
- text-align: center;
|
|
|
- cursor: pointer;
|
|
|
-
|
|
|
- &.active {
|
|
|
- &::after {
|
|
|
- @include active();
|
|
|
- background: linear-gradient(to top, rgba(170, 160, 112, 0.8) 0%, rgba(170, 160, 112, 0) 80%);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- span {
|
|
|
- display: block;
|
|
|
-
|
|
|
- &:first-child {
|
|
|
- font-size: 30px;
|
|
|
- line-height: 30px;
|
|
|
- background: linear-gradient(0deg, #FFFFFF 0%, #F8FFA6 100%);
|
|
|
- -webkit-background-clip: text !important;
|
|
|
- -webkit-text-fill-color: transparent;
|
|
|
- }
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- margin-top: 7px;
|
|
|
- font-size: 18px;
|
|
|
- color: #E9EBCF;
|
|
|
- line-height: 18px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- &:nth-child(2) {
|
|
|
- background: url('../../../assets/images/page/bg-rank-2.png');
|
|
|
-
|
|
|
- span:first-child {
|
|
|
- background: linear-gradient(0deg, #FFFFFF 0%, #78B0FF 100%);
|
|
|
- }
|
|
|
-
|
|
|
- span:last-child {
|
|
|
- color: #AECCDF;
|
|
|
- }
|
|
|
-
|
|
|
- &.active {
|
|
|
- &::after {
|
|
|
- @include active();
|
|
|
- background: linear-gradient(to top, rgba(112, 157, 222, 0.8) 0%, rgba(112, 157, 222, 0) 80%);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- &:nth-child(3) {
|
|
|
- background: url('../../../assets/images/page/bg-rank-3.png');
|
|
|
-
|
|
|
- span:first-child {
|
|
|
- background: linear-gradient(0deg, #FFFFFF 0%, #7B7FE1 100%);
|
|
|
- }
|
|
|
-
|
|
|
- span:last-child {
|
|
|
- color: #ABBBE6;
|
|
|
- }
|
|
|
-
|
|
|
- &.active {
|
|
|
- &::after {
|
|
|
- @include active();
|
|
|
- background: linear-gradient(to top, rgba(173, 126, 190, 0.8) 0%, rgba(173, 126, 190, 0) 80%);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .b-jrfx {
|
|
|
- display: flex;
|
|
|
- height: 180px;
|
|
|
-
|
|
|
- .bj-left {
|
|
|
- width: 130px;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: space-between;
|
|
|
- padding-bottom: 15px;
|
|
|
-
|
|
|
- li {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- img {
|
|
|
- width: 49px;
|
|
|
- height: 49px;
|
|
|
- margin-right: 4px;
|
|
|
- }
|
|
|
-
|
|
|
- &>div {
|
|
|
- &>span {
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
-
|
|
|
- &>div {
|
|
|
- display: flex;
|
|
|
- align-items: end;
|
|
|
-
|
|
|
- &>span:first-child {
|
|
|
- margin-right: 5px;
|
|
|
- font-size: 24px;
|
|
|
- line-height: 22px;
|
|
|
- background: linear-gradient(180deg, #95CDFF 0%, #D8EDFF 100%);
|
|
|
- -webkit-background-clip: text;
|
|
|
- -webkit-text-fill-color: transparent;
|
|
|
- }
|
|
|
-
|
|
|
- &>span:last-child {
|
|
|
- font-family: PingFang;
|
|
|
- font-size: 14px;
|
|
|
- line-height: 12px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .bj-right {
|
|
|
- flex: 1;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- .chart-title {
|
|
|
- display: block;
|
|
|
- width: 108px;
|
|
|
- height: 37px;
|
|
|
- background: url('../../../assets/images/page/bg-chart-title.png');
|
|
|
- background-size: cover;
|
|
|
- font-size: 16px;
|
|
|
- line-height: 44px;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- #chart-jrfx {
|
|
|
- width: 100%;
|
|
|
- flex: 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ .b-fwgl {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ height: 140px;
|
|
|
+ align-content: space-between;
|
|
|
+
|
|
|
+ li {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ width: 32%;
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 51px;
|
|
|
+ height: 51px;
|
|
|
+ margin-right: 7px;
|
|
|
+ }
|
|
|
+
|
|
|
+ & > div {
|
|
|
+ & > div {
|
|
|
+ margin-bottom: 7px;
|
|
|
+ display: flex;
|
|
|
+ align-items: end;
|
|
|
+
|
|
|
+ & > span:first-child {
|
|
|
+ margin-right: 5px;
|
|
|
+ font-size: 24px;
|
|
|
+ line-height: 20px;
|
|
|
+ background: linear-gradient(0deg, #ffffff 0%, #8bbbff 79%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+
|
|
|
+ & > span:last-child {
|
|
|
+ font-family: PingFang;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ & > span {
|
|
|
+ display: block;
|
|
|
+ font-size: 16px;
|
|
|
+ text-shadow: -7px 7px 10px #001121;
|
|
|
+ background: url();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .b-kysq {
|
|
|
+ margin: 0 10px;
|
|
|
+
|
|
|
+ .row-rwlx {
|
|
|
+ margin: -30px 0 30px;
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ height: 180px;
|
|
|
+ padding: 0 10px;
|
|
|
+ overflow: visible;
|
|
|
+
|
|
|
+ &::after {
|
|
|
+ content: '';
|
|
|
+ display: block;
|
|
|
+ position: absolute;
|
|
|
+ height: 106px;
|
|
|
+ width: 100%;
|
|
|
+ bottom: -70px;
|
|
|
+ left: 0;
|
|
|
+ background: url('../../../assets/images/page/bg-plate.png') no-repeat;
|
|
|
+ background-size: 100%;
|
|
|
+ z-index: -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ li {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ span:first-child {
|
|
|
+ font-size: 19px;
|
|
|
+ font-size: 500;
|
|
|
+ color: #b7c9ff;
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
+
|
|
|
+ span:nth-child(2) {
|
|
|
+ font-size: 16px;
|
|
|
+ color: #d0e8ff;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:nth-child(4) {
|
|
|
+ span:first-child {
|
|
|
+ background: linear-gradient(0deg, #f4d998 0%, #ffffff 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+
|
|
|
+ span:nth-child(2) {
|
|
|
+ color: #ebd9a2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .row-spzt {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-top: 10px;
|
|
|
+
|
|
|
+ @mixin active {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ clip-path: polygon(0% 0%, 100% 0%, 99% 60%, 50% 90%, 0% 60%);
|
|
|
+ z-index: -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ li {
|
|
|
+ position: relative;
|
|
|
+ width: 117px;
|
|
|
+ height: 110px;
|
|
|
+ background: url('../../../assets/images/page/bg-rank-1.png');
|
|
|
+ background-size: 100% !important;
|
|
|
+ padding: 12px 0 20px;
|
|
|
+ text-align: center;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ &::after {
|
|
|
+ @include active();
|
|
|
+ background: linear-gradient(to top, rgba(170, 160, 112, 0.8) 0%, rgba(170, 160, 112, 0) 80%);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ span {
|
|
|
+ display: block;
|
|
|
+
|
|
|
+ &:first-child {
|
|
|
+ font-size: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ background: linear-gradient(0deg, #ffffff 0%, #f8ffa6 100%);
|
|
|
+ -webkit-background-clip: text !important;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ margin-top: 7px;
|
|
|
+ font-size: 18px;
|
|
|
+ color: #e9ebcf;
|
|
|
+ line-height: 18px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &:nth-child(2) {
|
|
|
+ background: url('../../../assets/images/page/bg-rank-2.png');
|
|
|
+
|
|
|
+ span:first-child {
|
|
|
+ background: linear-gradient(0deg, #ffffff 0%, #78b0ff 100%);
|
|
|
+ }
|
|
|
+
|
|
|
+ span:last-child {
|
|
|
+ color: #aeccdf;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ &::after {
|
|
|
+ @include active();
|
|
|
+ background: linear-gradient(to top, rgba(112, 157, 222, 0.8) 0%, rgba(112, 157, 222, 0) 80%);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &:nth-child(3) {
|
|
|
+ background: url('../../../assets/images/page/bg-rank-3.png');
|
|
|
+
|
|
|
+ span:first-child {
|
|
|
+ background: linear-gradient(0deg, #ffffff 0%, #7b7fe1 100%);
|
|
|
+ }
|
|
|
+
|
|
|
+ span:last-child {
|
|
|
+ color: #abbbe6;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ &::after {
|
|
|
+ @include active();
|
|
|
+ background: linear-gradient(to top, rgba(173, 126, 190, 0.8) 0%, rgba(173, 126, 190, 0) 80%);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .b-jrfx {
|
|
|
+ display: flex;
|
|
|
+ height: 180px;
|
|
|
+
|
|
|
+ .bj-left {
|
|
|
+ width: 130px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding-bottom: 15px;
|
|
|
+
|
|
|
+ li {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 49px;
|
|
|
+ height: 49px;
|
|
|
+ margin-right: 4px;
|
|
|
+ }
|
|
|
+
|
|
|
+ & > div {
|
|
|
+ & > span {
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ & > div {
|
|
|
+ display: flex;
|
|
|
+ align-items: end;
|
|
|
+
|
|
|
+ & > span:first-child {
|
|
|
+ margin-right: 5px;
|
|
|
+ font-size: 24px;
|
|
|
+ line-height: 22px;
|
|
|
+ background: linear-gradient(180deg, #95cdff 0%, #d8edff 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+
|
|
|
+ & > span:last-child {
|
|
|
+ font-family: PingFang;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 12px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .bj-right {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .chart-title {
|
|
|
+ display: block;
|
|
|
+ width: 108px;
|
|
|
+ height: 37px;
|
|
|
+ background: url('../../../assets/images/page/bg-chart-title.png');
|
|
|
+ background-size: cover;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 44px;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ #chart-jrfx {
|
|
|
+ width: 100%;
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|