|
|
|
@ -1,108 +1,92 @@ |
|
|
|
<template> |
|
|
|
<div class="m-wtqd"> |
|
|
|
<title-small text="难点堵点"/> |
|
|
|
<div v-if="nddd.length>0" class="t-list f-hflex"> |
|
|
|
<div v-if="nddd.length>0" class="t-list f-hflex h135"> |
|
|
|
<swiper ref="orderSwiper" :options="swiperOptions"> |
|
|
|
<swiper-slide |
|
|
|
v-for="(items, index) in nddd" |
|
|
|
v-for="(item, index) in nddd" |
|
|
|
:key="index" |
|
|
|
class="swiper-slide" |
|
|
|
> |
|
|
|
<div |
|
|
|
v-for="(item, index) in items" |
|
|
|
:key="index" |
|
|
|
:class="['item', 'f-flex']" |
|
|
|
@click="handleView(item)" |
|
|
|
> |
|
|
|
<div class="item f-flex" @click="handleView(item)"> |
|
|
|
<span>{{ item.createdTime.substr(5, 5) }}</span> |
|
|
|
<span>{{ item.eventContent }}</span> |
|
|
|
</div> |
|
|
|
</swiper-slide> |
|
|
|
</swiper> |
|
|
|
</div> |
|
|
|
<div v-else v-loading="listLoading" class="no-data h150" |
|
|
|
<div v-else v-loading="listLoading" class="no-data h135" |
|
|
|
element-loading-background="rgba(0, 21, 64, 0" |
|
|
|
element-loading-spinner="el-icon-loading" element-loading-text="加载中"> |
|
|
|
<NoData size="40"/> |
|
|
|
</div> |
|
|
|
|
|
|
|
<title-small text="矛盾纠纷"/> |
|
|
|
<div v-if="mdjf.length>0" class="t-list f-hflex"> |
|
|
|
<div v-if="mdjf.length>0" class="t-list f-hflex h135"> |
|
|
|
<swiper ref="orderSwiper" :options="swiperOptions"> |
|
|
|
<swiper-slide |
|
|
|
v-for="(items, index) in mdjf" |
|
|
|
v-for="(item, index) in mdjf" |
|
|
|
:key="index" |
|
|
|
class="swiper-slide" |
|
|
|
> |
|
|
|
<div |
|
|
|
v-for="(item, index) in items" |
|
|
|
:class="['item', 'f-flex']" |
|
|
|
@click="handleView(item)" |
|
|
|
> |
|
|
|
<div class="item f-flex bto-border" @click="handleView(item)"> |
|
|
|
<span>{{ item.createdTime.substr(5, 5) }}</span> |
|
|
|
<span>{{ item.eventContent }}</span> |
|
|
|
</div> |
|
|
|
</swiper-slide> |
|
|
|
</swiper> |
|
|
|
</div> |
|
|
|
<div v-else v-loading="listLoading" class="no-data h150" element-loading-background="rgba(0, 21, 64, 0" |
|
|
|
<div v-else v-loading="listLoading" class="no-data h135" element-loading-background="rgba(0, 21, 64, 0" |
|
|
|
element-loading-spinner="el-icon-loading" |
|
|
|
element-loading-text="加载中"> |
|
|
|
<NoData size="40"/> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<title-small text="自身问题"/> |
|
|
|
<div v-if="zswt.length>0" class="t-list f-hflex"> |
|
|
|
<div v-if="zswt.length>0" class="t-list f-hflex h135"> |
|
|
|
<swiper ref="orderSwiper" :options="swiperOptions" class="swiper-containers"> |
|
|
|
<swiper-slide |
|
|
|
v-for="(items, index) in zswt" |
|
|
|
v-for="(item, index) in zswt" |
|
|
|
:key="index" |
|
|
|
class="swiper-slide" |
|
|
|
> |
|
|
|
<div |
|
|
|
v-for="(item, index) in items" |
|
|
|
:key="index" |
|
|
|
:class="['item', 'f-flex']" |
|
|
|
@click="handleView(item)" |
|
|
|
> |
|
|
|
<div class="item f-flex" @click="handleView(item)"> |
|
|
|
<span>{{ item.createdTime.substr(5, 5) }}</span> |
|
|
|
<span>{{ item.eventContent }}</span> |
|
|
|
</div> |
|
|
|
</swiper-slide> |
|
|
|
</swiper> |
|
|
|
</div> |
|
|
|
<div v-else v-loading="listLoading" class="no-data h150" element-loading-background="rgba(0, 21, 64, 0" |
|
|
|
<div v-else v-loading="listLoading" class="no-data h135" element-loading-background="rgba(0, 21, 64, 0" |
|
|
|
element-loading-spinner="el-icon-loading" |
|
|
|
element-loading-text="加载中"> |
|
|
|
<NoData size="40"/> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<title-small text="超出服务范围"/> |
|
|
|
<div v-if="ccfwfw.length>0" class="t-list f-hflex"> |
|
|
|
<div v-if="ccfwfw.length>0" class="t-list f-hflex h135"> |
|
|
|
<swiper ref="orderSwiper" :options="swiperOptions" class="swiper-containers"> |
|
|
|
<swiper-slide |
|
|
|
v-for="(items, index) in ccfwfw" |
|
|
|
v-for="(item, index) in ccfwfw" |
|
|
|
:key="index" |
|
|
|
class="swiper-slide" |
|
|
|
> |
|
|
|
<div |
|
|
|
v-for="(item, index) in items" |
|
|
|
:key="index" |
|
|
|
:class="['item', 'f-flex']" |
|
|
|
@click="handleView(item)" |
|
|
|
> |
|
|
|
<div class="item f-flex bto-border" @click="handleView(item)"> |
|
|
|
<span>{{ item.createdTime.substr(5, 5) }}</span> |
|
|
|
<span>{{ item.eventContent }}</span> |
|
|
|
</div> |
|
|
|
</swiper-slide> |
|
|
|
</swiper> |
|
|
|
</div> |
|
|
|
<div v-else v-loading="listLoading" class="no-data h150" element-loading-background="rgba(0, 21, 64, 0" |
|
|
|
<div v-else v-loading="listLoading" class="no-data h135" element-loading-background="rgba(0, 21, 64, 0" |
|
|
|
element-loading-spinner="el-icon-loading" |
|
|
|
element-loading-text="加载中"> |
|
|
|
<NoData size="40"/> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<title-small text="不满意问题数"/> |
|
|
|
<div class="f-flex white f-mean"> |
|
|
|
<div |
|
|
|
@ -187,16 +171,15 @@ export default { |
|
|
|
startTime: "", |
|
|
|
|
|
|
|
tableData: [], |
|
|
|
createdTime: '2022-05-20 10:50:58', |
|
|
|
// 就是现在是每4条滚动一次我想要它一直滚动 |
|
|
|
swiperOptions: { |
|
|
|
direction: "vertical", // 滑动方向,可以是 'horizontal' 或 'vertical' |
|
|
|
slidesPerView: 3, |
|
|
|
autoplay: { |
|
|
|
delay: 6000, // 自动切换的间隔时间,单位是毫秒 |
|
|
|
delay: 1000, // 自动切换的间隔时间,单位是毫秒 |
|
|
|
disableOnInteraction: true, // 用户操作后是否禁止自动切换 |
|
|
|
}, |
|
|
|
loop: false, // 是否启用循环模式 |
|
|
|
speed: 1000, // 滑动速度,单位是毫秒 |
|
|
|
speed: 2000, // 滑动速度,单位是毫秒 |
|
|
|
}, |
|
|
|
|
|
|
|
nddd: [], |
|
|
|
@ -286,10 +269,14 @@ export default { |
|
|
|
this.listLoading = true |
|
|
|
const apiResults = await this.fetchData(); |
|
|
|
this.listLoading = false |
|
|
|
this.nddd = this.groupList(apiResults[0].list, 4); |
|
|
|
/* this.nddd = this.groupList(apiResults[0].list, 4); |
|
|
|
this.mdjf = this.groupList(apiResults[1].list, 4); |
|
|
|
this.zswt = this.groupList(apiResults[2].list, 3); |
|
|
|
this.ccfwfw = this.groupList(apiResults[3].list, 3); |
|
|
|
this.ccfwfw = this.groupList(apiResults[3].list, 3);*/ |
|
|
|
this.nddd = apiResults[0].list |
|
|
|
this.mdjf = apiResults[1].list |
|
|
|
this.zswt = apiResults[2].list |
|
|
|
this.ccfwfw = apiResults[3].list |
|
|
|
}, |
|
|
|
groupList(array, subGroupLength) { |
|
|
|
let index = 0; |
|
|
|
@ -323,12 +310,12 @@ export default { |
|
|
|
|
|
|
|
<style lang="scss" scoped src="@/assets/scss/dataBoard/overview/index.scss"/> |
|
|
|
<style lang="scss" scoped> |
|
|
|
.h150 { |
|
|
|
height: 150px; |
|
|
|
.h135 { |
|
|
|
height: 135px; |
|
|
|
} |
|
|
|
|
|
|
|
.h200 { |
|
|
|
height: 200px; |
|
|
|
.h175 { |
|
|
|
height: 175px; |
|
|
|
} |
|
|
|
|
|
|
|
.f-hflex { |
|
|
|
@ -358,15 +345,17 @@ export default { |
|
|
|
position: relative; |
|
|
|
flex: 1; |
|
|
|
width: 100%; |
|
|
|
margin-top: 10px; |
|
|
|
margin-bottom: 16px; |
|
|
|
|
|
|
|
.swiper-container { |
|
|
|
width: 100%; |
|
|
|
height: 150px; |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
.swiper-containers { |
|
|
|
width: 100%; |
|
|
|
height: 150px; |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
.item { |
|
|
|
@ -403,15 +392,16 @@ export default { |
|
|
|
padding: 0 4px; |
|
|
|
|
|
|
|
.bto-border { |
|
|
|
height: 1px; |
|
|
|
//height: 1px; |
|
|
|
border-bottom: 1px solid; |
|
|
|
border-image: linear-gradient(to right, #1c3e69 0%, #4eafd5 50%, #1c3e69 100%); |
|
|
|
border-image-slice: 1; |
|
|
|
background: none; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.white { |
|
|
|
padding: 18px 0; |
|
|
|
padding: 8px 0 17px; |
|
|
|
//height: 100px; |
|
|
|
} |
|
|
|
</style> |
|
|
|
|