2020-06-07 10:28:34 +08:00
|
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<Header></Header>
|
|
|
|
|
<div class="location">
|
|
|
|
|
<div class="location-content">
|
|
|
|
|
您的位置:<router-link to="/">首页</router-link> > 文化场馆
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="select">
|
|
|
|
|
<div class="select-container">
|
|
|
|
|
<div class="select-line">
|
|
|
|
|
<span>活动类别></span>
|
|
|
|
|
<button :class="{active: page.venueType == ''}" @click="changeType(null)">全部</button>
|
|
|
|
|
<button v-for="(btn,idx) in typeList" :key="idx" @click="changeType(btn.dictionaryId)" :class="{active: page.venueType == btn.dictionaryId}">{{btn.dictionaryName}}</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="select-line">
|
|
|
|
|
<span>选择区域></span>
|
2020-07-14 16:14:54 +08:00
|
|
|
|
<div style="display: inline-block;width: 95%;">
|
2020-06-07 10:28:34 +08:00
|
|
|
|
<button :class="{active: page.venueArea == ''}" @click="changeArea(null)">全部</button>
|
2020-07-31 17:23:49 +08:00
|
|
|
|
<button v-for="(btn,idx) in areaList" :key="idx" @click="changeArea(btn.areaId, btn.areaLevel)" :class="{active: page.venueArea == btn.areaId}">{{btn.areaName}}</button>
|
2020-06-07 10:28:34 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="venue">
|
2020-07-14 16:14:54 +08:00
|
|
|
|
<div v-if="!isLoading">
|
|
|
|
|
<ul v-if="hasData">
|
2020-07-16 19:30:11 +08:00
|
|
|
|
<router-link :to="{path: '/cultureVenueDetail/' + list.venuesInfoId}" tag="li" class="venue-list" v-for="list in venueList" :key="list.id" :title="list.venueName">
|
2020-07-14 16:14:54 +08:00
|
|
|
|
<img :src="url + '/venuebooking/route/file/downloadfile/false/' + list.venuePanorama" alt="">
|
|
|
|
|
<div class="venue-name">
|
|
|
|
|
<p>{{list.venueName}}</p>
|
|
|
|
|
</div>
|
|
|
|
|
</router-link>
|
|
|
|
|
</ul>
|
|
|
|
|
<div class="no-data" v-else>
|
|
|
|
|
<img src="@/assets/images/no-data.png" alt="">
|
|
|
|
|
</div>
|
2020-06-07 10:28:34 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pager" v-if="hasData">
|
|
|
|
|
<span @click="paging(1)">首页</span>
|
|
|
|
|
<span @click="paging(page.page - 1)" v-if="page.page > 1">上一页</span>
|
|
|
|
|
<ul v-if="page.totalPage > 0 && page.totalPage <= 5">
|
|
|
|
|
<li v-for="cpage in page.totalPage" :class="{'active': page.page == cpage}" :key="cpage" @click="paging(cpage)">
|
|
|
|
|
{{cpage}}
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<ul v-if="page.totalPage > 5">
|
|
|
|
|
<li v-if="page.page < 3" v-for="cpage in 5" :class="{'active': page.page == cpage}" :key="cpage" @click="paging(cpage)">
|
|
|
|
|
{{cpage}}
|
|
|
|
|
</li>
|
|
|
|
|
<li v-if="page.page > page.totalPage - 2" v-for="cpage in 5" :class="{'active': page.page == (page.totalPage - 5 + cpage)}" :key="cpage" @click="paging(cpage)">
|
|
|
|
|
{{page.totalPage - 5 + cpage}}
|
|
|
|
|
</li>
|
|
|
|
|
<li v-if="page.page >= 3 && page.page <= page.totalPage - 2" v-for="cpage in 5" :class="{'active': page.page == (page.page - (3 - cpage))}" :key="cpage" @click="paging(cpage)">
|
|
|
|
|
{{page.page - (3 - cpage)}}
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<span @click="paging(page.page + 1)" v-if="page.page < page.totalPage">下一页</span>
|
|
|
|
|
<span @click="paging(page.totalPage)">尾页</span>
|
|
|
|
|
<input type="text" v-model="changePage" v-if="showJumpBtn">
|
|
|
|
|
<i v-if="showJumpBtn">/{{page.totalPage}}页</i>
|
|
|
|
|
<button v-if="showJumpBtn" @click="doJumpPage">跳转</button>
|
|
|
|
|
</div>
|
2020-07-14 16:14:54 +08:00
|
|
|
|
<div class="loading" v-if="isLoading">
|
|
|
|
|
<img src="@/assets/images/loading.gif" alt="">
|
|
|
|
|
</div>
|
2020-06-07 10:28:34 +08:00
|
|
|
|
<Footer></Footer>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import Header from '@/common/components/Header'
|
|
|
|
|
import Footer from '@/common/components/Footer'
|
2020-07-11 14:45:34 +08:00
|
|
|
|
import common from '@/common/components/common.js'
|
2020-06-07 10:28:34 +08:00
|
|
|
|
import axios from 'axios'
|
|
|
|
|
export default {
|
|
|
|
|
name: 'CultureVenue',
|
|
|
|
|
components: {
|
|
|
|
|
Header,
|
|
|
|
|
Footer
|
|
|
|
|
},
|
|
|
|
|
data () {
|
|
|
|
|
return {
|
|
|
|
|
changePage: 1,
|
|
|
|
|
typeList: [],
|
|
|
|
|
cityList: [],
|
|
|
|
|
areaList: [],
|
|
|
|
|
venueList: [],
|
|
|
|
|
page: {
|
|
|
|
|
page: 1,
|
|
|
|
|
rows: 8,
|
|
|
|
|
totalPage: 1,
|
|
|
|
|
venueType: '',
|
2020-07-31 17:23:49 +08:00
|
|
|
|
venueArea: '',
|
|
|
|
|
areaLevel: ''
|
2020-07-11 14:45:34 +08:00
|
|
|
|
},
|
2020-07-14 16:14:54 +08:00
|
|
|
|
url: common.url,
|
|
|
|
|
isLoading: false
|
2020-06-07 10:28:34 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
hasData () {
|
|
|
|
|
return this.venueList.length > 0
|
|
|
|
|
},
|
|
|
|
|
showJumpBtn () {
|
|
|
|
|
return this.page.totalPage > 1
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
2020-07-31 17:23:49 +08:00
|
|
|
|
changeArea: function (area, lv) {
|
2020-07-18 12:25:06 +08:00
|
|
|
|
this.page.page = 1
|
|
|
|
|
this.changePage = 1
|
2020-06-07 10:28:34 +08:00
|
|
|
|
if (area) {
|
|
|
|
|
this.page.venueArea = area
|
2020-07-31 17:23:49 +08:00
|
|
|
|
this.page.areaLevel = 'area' + (parseInt(lv) + 1)
|
2020-06-07 10:28:34 +08:00
|
|
|
|
} else {
|
|
|
|
|
this.page.venueArea = ''
|
|
|
|
|
}
|
|
|
|
|
this.getVenueList()
|
|
|
|
|
},
|
|
|
|
|
changeType: function (type) {
|
2020-07-18 12:25:06 +08:00
|
|
|
|
this.page.page = 1
|
|
|
|
|
this.changePage = 1
|
2020-06-07 10:28:34 +08:00
|
|
|
|
if (type) {
|
|
|
|
|
this.page.venueType = type
|
|
|
|
|
} else {
|
|
|
|
|
this.page.venueType = ''
|
|
|
|
|
}
|
|
|
|
|
this.getVenueList()
|
|
|
|
|
},
|
|
|
|
|
paging: function (page) {
|
|
|
|
|
this.page.page = page
|
|
|
|
|
this.getVenueList()
|
|
|
|
|
},
|
|
|
|
|
doJumpPage: function () {
|
|
|
|
|
this.page.page = this.changePage
|
|
|
|
|
this.getVenueList()
|
|
|
|
|
},
|
|
|
|
|
getTypeList: function () {
|
|
|
|
|
var self = this
|
2022-11-23 23:32:15 +08:00
|
|
|
|
axios.get(self.url + 'app/venuedictionary/listvenuedictionarybyparentidrelease/df8b758c-f6d8-465a-9aa8-c451fde47076').then(function (res) {
|
2020-06-07 10:28:34 +08:00
|
|
|
|
self.typeList = res.data.data
|
|
|
|
|
})
|
|
|
|
|
},
|
2020-07-14 16:14:54 +08:00
|
|
|
|
getAreaList: function () {
|
2020-06-07 10:28:34 +08:00
|
|
|
|
var self = this
|
2022-11-23 23:32:15 +08:00
|
|
|
|
axios.get(self.url + 'app/area/listbyparentidrelease/640675').then(function (res) {
|
2020-07-31 17:23:49 +08:00
|
|
|
|
self.areaList = res.data
|
2020-06-07 10:28:34 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
getVenueList: function () {
|
|
|
|
|
var self = this
|
2020-07-14 16:14:54 +08:00
|
|
|
|
self.isLoading = true
|
2022-11-23 23:32:15 +08:00
|
|
|
|
axios.get(self.url + 'app/venuesinfo/listpagevenuesinforelease', {
|
2020-06-07 10:28:34 +08:00
|
|
|
|
params: self.page
|
|
|
|
|
}).then(function (res) {
|
|
|
|
|
for (var i = 0; i < res.data.rows.length; i++) {
|
|
|
|
|
res.data.rows[i].venuePanorama = res.data.rows[i].venuePanorama.split(',')[0]
|
|
|
|
|
}
|
|
|
|
|
self.venueList = res.data.rows
|
|
|
|
|
self.page.page = res.data.page
|
|
|
|
|
self.changePage = res.data.page
|
|
|
|
|
self.page.totalPage = Math.ceil(res.data.total / self.page.rows)
|
2020-07-14 16:14:54 +08:00
|
|
|
|
self.isLoading = false
|
2020-06-07 10:28:34 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted () {
|
|
|
|
|
this.getTypeList()
|
2020-07-14 16:14:54 +08:00
|
|
|
|
// this.getCityList()
|
|
|
|
|
this.getAreaList()
|
2020-06-07 10:28:34 +08:00
|
|
|
|
this.getVenueList()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="stylus" rel="stylesheet/stylus" scoped>
|
2020-06-10 11:19:26 +08:00
|
|
|
|
@import "~styles/public.styl"
|
2020-06-07 10:28:34 +08:00
|
|
|
|
.location
|
|
|
|
|
background #e5e5e5
|
|
|
|
|
line-height 30px
|
2020-06-10 11:19:26 +08:00
|
|
|
|
font-family 'zangwen'
|
2020-06-07 10:28:34 +08:00
|
|
|
|
.location-content
|
|
|
|
|
width 1200px
|
|
|
|
|
margin 0 auto
|
|
|
|
|
font-size 14px
|
|
|
|
|
color #565656
|
|
|
|
|
.select
|
2020-06-10 11:19:26 +08:00
|
|
|
|
font-family 'zangwen'
|
2020-06-07 10:28:34 +08:00
|
|
|
|
padding 10px 0 0
|
|
|
|
|
background #f0f0f0
|
|
|
|
|
overflow hidden
|
|
|
|
|
.select-container
|
|
|
|
|
width 1200px
|
|
|
|
|
margin 0 auto
|
|
|
|
|
.select-line
|
|
|
|
|
margin-bottom 10px
|
|
|
|
|
font-size 14px
|
|
|
|
|
span
|
|
|
|
|
color #565656
|
2020-07-14 16:14:54 +08:00
|
|
|
|
vertical-align top
|
|
|
|
|
line-height 30px
|
2020-06-07 10:28:34 +08:00
|
|
|
|
button
|
2020-06-10 11:19:26 +08:00
|
|
|
|
font-family 'zangwen'
|
2020-06-07 10:28:34 +08:00
|
|
|
|
width 80px
|
|
|
|
|
height 30px
|
|
|
|
|
padding 0 5px
|
|
|
|
|
box-sizing border-box
|
|
|
|
|
border none
|
|
|
|
|
background none
|
|
|
|
|
outline none
|
|
|
|
|
color #565656
|
|
|
|
|
border-radius 4px
|
|
|
|
|
cursor pointer
|
|
|
|
|
white-space nowrap
|
|
|
|
|
overflow hidden
|
|
|
|
|
text-overflow: ellipsis
|
|
|
|
|
vertical-align middle
|
|
|
|
|
&.active
|
|
|
|
|
color #fff
|
2020-06-10 11:19:26 +08:00
|
|
|
|
background $main-color
|
2020-06-07 10:28:34 +08:00
|
|
|
|
.venue
|
|
|
|
|
width 1200px
|
|
|
|
|
min-height 400px
|
|
|
|
|
margin 20px auto
|
|
|
|
|
ul
|
2020-07-16 19:30:11 +08:00
|
|
|
|
&:after
|
|
|
|
|
content ''
|
|
|
|
|
display block
|
|
|
|
|
clear both
|
2020-06-07 10:28:34 +08:00
|
|
|
|
.venue-list
|
|
|
|
|
float left
|
|
|
|
|
width 280px
|
|
|
|
|
height 185px
|
|
|
|
|
position relative
|
|
|
|
|
margin-right 26px
|
|
|
|
|
margin-bottom 26px
|
|
|
|
|
cursor pointer
|
2020-07-16 19:30:11 +08:00
|
|
|
|
box-shadow:0px 0px 10px 0px rgba(176,176,176,0.3);
|
2020-06-07 10:28:34 +08:00
|
|
|
|
&:nth-child(4n)
|
|
|
|
|
margin-right 0
|
2020-07-16 19:30:11 +08:00
|
|
|
|
&:hover
|
|
|
|
|
box-shadow:0px 0px 20px 0px rgba(176,176,176,0.9);
|
2020-06-07 10:28:34 +08:00
|
|
|
|
img
|
|
|
|
|
width 100%
|
|
|
|
|
height 185px
|
|
|
|
|
.venue-name
|
|
|
|
|
position absolute
|
|
|
|
|
bottom 0
|
|
|
|
|
left 0
|
|
|
|
|
width 100%
|
|
|
|
|
height 35px
|
|
|
|
|
padding 0 5px
|
|
|
|
|
box-sizing border-box
|
|
|
|
|
text-align center
|
|
|
|
|
background rgba(0,0,0,0.6)
|
|
|
|
|
p
|
2020-07-16 19:30:11 +08:00
|
|
|
|
font-family '宋体'
|
2020-06-07 10:28:34 +08:00
|
|
|
|
line-height 35px
|
|
|
|
|
color #fff
|
|
|
|
|
font-size 14px
|
|
|
|
|
white-space nowrap
|
|
|
|
|
overflow hidden
|
|
|
|
|
text-overflow: ellipsis
|
|
|
|
|
.no-data
|
|
|
|
|
padding 80px 0
|
|
|
|
|
text-align center
|
|
|
|
|
img
|
|
|
|
|
width 200px
|
|
|
|
|
.pager
|
|
|
|
|
width 1200px
|
|
|
|
|
margin 20px auto
|
|
|
|
|
text-align center
|
|
|
|
|
font-size 0
|
2020-06-10 11:19:26 +08:00
|
|
|
|
font-family 'zangwen'
|
2020-06-07 10:28:34 +08:00
|
|
|
|
span
|
|
|
|
|
display inline-block
|
|
|
|
|
padding 0 15px
|
|
|
|
|
line-height 25px
|
|
|
|
|
color #676767
|
|
|
|
|
border 1px solid #d2d2d2
|
|
|
|
|
font-size 14px
|
|
|
|
|
margin 0 5px
|
|
|
|
|
vertical-align middle
|
|
|
|
|
cursor pointer
|
|
|
|
|
ul
|
|
|
|
|
display inline-block
|
|
|
|
|
overflow hidden
|
|
|
|
|
vertical-align middle
|
|
|
|
|
li
|
|
|
|
|
width 45px
|
|
|
|
|
line-height 25px
|
|
|
|
|
float left
|
|
|
|
|
margin-right 10px
|
|
|
|
|
border 1px solid #d2d2d2
|
|
|
|
|
cursor pointer
|
|
|
|
|
text-align center
|
|
|
|
|
font-size 14px
|
|
|
|
|
color #676767
|
|
|
|
|
&.active
|
2020-06-10 11:19:26 +08:00
|
|
|
|
background $main-color
|
2020-06-07 10:28:34 +08:00
|
|
|
|
color #ffffff
|
2020-06-10 11:19:26 +08:00
|
|
|
|
border 1px solid $main-color
|
2020-06-07 10:28:34 +08:00
|
|
|
|
&:last-child
|
|
|
|
|
margin: 0
|
|
|
|
|
input
|
|
|
|
|
width 50px
|
|
|
|
|
height 25px
|
|
|
|
|
border 1px solid #d2d2d2
|
|
|
|
|
text-align center
|
|
|
|
|
vertical-align middle
|
|
|
|
|
i
|
|
|
|
|
font-style normal
|
|
|
|
|
color #676767
|
|
|
|
|
font-size 14px
|
|
|
|
|
line-height 25px
|
|
|
|
|
display inline-block
|
|
|
|
|
vertical-align middle
|
|
|
|
|
margin 0 5px
|
|
|
|
|
button
|
|
|
|
|
border none
|
|
|
|
|
outline none
|
2020-07-18 12:25:06 +08:00
|
|
|
|
background $main-color
|
|
|
|
|
cursor pointer
|
2020-06-07 10:28:34 +08:00
|
|
|
|
width 50px
|
|
|
|
|
height 25px
|
|
|
|
|
vertical-align middle
|
|
|
|
|
color #fff
|
|
|
|
|
font-size 14px
|
2020-07-14 16:14:54 +08:00
|
|
|
|
.loading
|
|
|
|
|
position fixed
|
|
|
|
|
top 50%
|
|
|
|
|
left 50%
|
|
|
|
|
transform translate(-50%, -50%)
|
|
|
|
|
background rgba(255,255,255,0.6)
|
|
|
|
|
padding 30px
|
|
|
|
|
border-radius 10px
|
|
|
|
|
box-shadow 0 0 17px #DEDEDE
|
2020-06-07 10:28:34 +08:00
|
|
|
|
</style>
|