|
@@ -1,11 +1,20 @@
|
|
<template>
|
|
<template>
|
|
<div class="table-loop" ref="tableLoop">
|
|
<div class="table-loop" ref="tableLoop">
|
|
<div class="thead">
|
|
<div class="thead">
|
|
- <div class="td col1">排名</div>
|
|
|
|
|
|
+ <!-- <div class="td col1">排名</div>
|
|
<div class="td col2">城市</div>
|
|
<div class="td col2">城市</div>
|
|
<div class="td col3">总数</div>
|
|
<div class="td col3">总数</div>
|
|
<div class="td col4">百分比</div>
|
|
<div class="td col4">百分比</div>
|
|
- <div class="td col5">增减</div>
|
|
|
|
|
|
+ <div class="td col5">增减</div> -->
|
|
|
|
+ <div class="td index">排名</div>
|
|
|
|
+ <div
|
|
|
|
+ class="td"
|
|
|
|
+ v-for="(item, index) in columns"
|
|
|
|
+ :key="index"
|
|
|
|
+ :style="item.styles || {}"
|
|
|
|
+ >
|
|
|
|
+ {{ item.label }}
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<swiper
|
|
<swiper
|
|
:key="swiperKey"
|
|
:key="swiperKey"
|
|
@@ -22,15 +31,27 @@
|
|
v-for="(item, index) in data || []"
|
|
v-for="(item, index) in data || []"
|
|
:key="index"
|
|
:key="index"
|
|
>
|
|
>
|
|
- <div class="td col1">{{ index + 1 }}</div>
|
|
|
|
- <div class="td col2">{{ item.name }}</div>
|
|
|
|
|
|
+ <div class="td index">{{ index + 1 }}</div>
|
|
|
|
+ <!-- <div class="td col2">{{ item.name }}</div>
|
|
<div class="td col3"> {{ item.count }} </div>
|
|
<div class="td col3"> {{ item.count }} </div>
|
|
<div class="td col4">
|
|
<div class="td col4">
|
|
<div class="process-box">
|
|
<div class="process-box">
|
|
<div class="process" :style="{ width: item.rate }"></div>
|
|
<div class="process" :style="{ width: item.rate }"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="td col5"></div>
|
|
|
|
|
|
+ <div class="td col5"></div> -->
|
|
|
|
+
|
|
|
|
+ <div
|
|
|
|
+ class="td"
|
|
|
|
+ v-for="(v, i) in columns"
|
|
|
|
+ :key="i"
|
|
|
|
+ :style="item.styles || {}"
|
|
|
|
+ >
|
|
|
|
+ <span v-if="v.prop !== 'rate'">{{ item[v.prop] }}</span>
|
|
|
|
+ <div class="process-box" v-else>
|
|
|
|
+ <div class="process" :style="{ width: item.rate }"></div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</swiper-slide>
|
|
</swiper-slide>
|
|
</swiper>
|
|
</swiper>
|
|
</div>
|
|
</div>
|
|
@@ -42,7 +63,7 @@ import { Navigation, Mousewheel, Autoplay } from 'swiper';
|
|
import { Swiper, SwiperSlide } from 'vue-awesome-swiper';
|
|
import { Swiper, SwiperSlide } from 'vue-awesome-swiper';
|
|
import 'swiper/css';
|
|
import 'swiper/css';
|
|
import 'swiper/css/autoplay';
|
|
import 'swiper/css/autoplay';
|
|
-const props = defineProps({ data: Object });
|
|
|
|
|
|
+const props = defineProps({ data: Object, columns: Array });
|
|
const modules = ref([Navigation, Mousewheel, Autoplay]);
|
|
const modules = ref([Navigation, Mousewheel, Autoplay]);
|
|
const swiperKey = ref(Date.now() + '');
|
|
const swiperKey = ref(Date.now() + '');
|
|
const tableLoop = ref();
|
|
const tableLoop = ref();
|
|
@@ -66,11 +87,11 @@ onMounted(() => {
|
|
.thead {
|
|
.thead {
|
|
height: 36px;
|
|
height: 36px;
|
|
background-color: #f7f7f7;
|
|
background-color: #f7f7f7;
|
|
- color: #8c8c8c;
|
|
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
.td {
|
|
.td {
|
|
text-align: center;
|
|
text-align: center;
|
|
line-height: 36px;
|
|
line-height: 36px;
|
|
|
|
+ color: #8c8c8c !important;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.slide {
|
|
.slide {
|
|
@@ -100,6 +121,9 @@ onMounted(() => {
|
|
justify-content: center;
|
|
justify-content: center;
|
|
align-items: center;
|
|
align-items: center;
|
|
height: 100%;
|
|
height: 100%;
|
|
|
|
+ &.index {
|
|
|
|
+ width: 34px;
|
|
|
|
+ }
|
|
.process-box {
|
|
.process-box {
|
|
background-color: #d9d9d9;
|
|
background-color: #d9d9d9;
|
|
height: 6px;
|
|
height: 6px;
|