This commit is contained in:
dong_bo0602 2020-07-14 16:14:54 +08:00
parent d335b8fc46
commit 7432faa301
28 changed files with 673 additions and 207 deletions

View File

@ -23,6 +23,9 @@ module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: './src/main.js'
},
externals:{
"BMap": "BMap",
},
devServer: {
historyApiFallback: true,

View File

@ -7,22 +7,14 @@
<title>xz_culture</title>
<script src="./static/ckplayer/ckplayer/ckplayer.js"></script>
<script src="./static/laydate/laydate.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=RrkB6G1UWWnGW2VN3ce9znbpWIfgRG4g">
<script>
(function(window) {
var theUA = window.navigator.userAgent.toLowerCase();
if ((theUA.match(/msie\s\d+/) && theUA.match(/msie\s\d+/)[0]) || (theUA.match(/trident\s?\d+/) && theUA.match(/trident\s?\d+/)[0])) {
var ieVersion = theUA.match(/msie\s\d+/)[0].match(/\d+/)[0] || theUA.match(/trident\s?\d+/)[0];
if (ieVersion < 11) {
var html = '<div class="container" style="position: absolute;top:50%;left:50%;transform: translate(-50%,-50%);width:780px;padding: 30px 60px;text-align: center"><img src="static/browser-box-bg.png" style="position: absolute;top:0;left:0;width:100%;height:100%;z-index: -1">';
html += '<img src="static/browser-update.png" style="margin:30px 0 20px">';
html += '<h3 style="font-size: 26px;color: #015293;margin-bottom: 20px;text-align: center">升级或更换浏览器以继续使用</h3><p style="text-align: center;font-size: 18px;color: #333;">当前浏览器版本过低,可能会有安全风险且无法正常显示。建议您升级或使用其他浏览器。</p>';
html += '<ul style="display: inline-block;list-style: none"><li style="float:left;margin-right:90px"><a href="https://browser.qq.com/?adtag=SEM170314031" style="display:block;text-align: center"><img src="static/browser-qq.png" alt="" style="width:98px;height:98px;border: none"><h5 style="font-size: 18px;color: #333;font-weight: normal;margin-bottom: 10px">QQ浏览器</h5><span style="display: inline-block;width: 75px;height:25px;line-height: 25px;color: #015293;font-size: 16px;padding: 0 5px">点击下载</span></a></li>';
html += '<li style="float:left;margin-right:90px"><a href="https://www.google.cn/chrome/" style="display:block;text-align: center"><img src="static/browser-google.png" alt="" style="width:98px;height:98px;border: none"><h5 style="font-size: 18px;color: #333;font-weight: normal;margin-bottom: 10px">谷歌浏览器</h5>\<span style="display: inline-block;width: 75px;height:25px;line-height: 25px;color: #015293;font-size: 16px;padding: 0 5px">点击下载</span></a></li>'
html += '<li style="float:left;margin-right:90px"><a href="http://www.firefox.com.cn/" style="display:block;text-align: center"><img src="static/browser-firefox.png" alt="" style="width:98px;height:98px;border: none"><h5 style="font-size: 18px;color: #333;font-weight: normal;margin-bottom: 10px">火狐浏览器</h5><span style="display: inline-block;width: 75px;height:25px;line-height: 25px;color: #015293;font-size: 16px;padding: 0 5px">点击下载</span></a></li>'
html += '<li style="float:left;"><a href="https://www.google.cn/chrome/" style="display:block;text-align: center"><img src="static/browser-1.png" alt="" style="width:98px;height:98px;border: none"><h5 style="font-size: 18px;color: #333;font-weight: normal;margin-bottom: 10px">谷歌浏览器</h5><span style="display: inline-block;width: 75px;height:25px;line-height: 25px;color: #015293;font-size: 16px;padding: 0 5px">点击下载</span></a></li>'
html += '</ul>'
document.write(html)
document.execCommand("Stop");
window.location.href = '/download/index.html'
};
}
})(window);

5
package-lock.json generated
View File

@ -12636,6 +12636,11 @@
"resolved": "https://registry.npm.taobao.org/vue-wechat-title/download/vue-wechat-title-2.0.5.tgz",
"integrity": "sha1-Yo3UvtyhDvObmpj2fKVkpNt3Jgs="
},
"vuescroll": {
"version": "4.16.0",
"resolved": "https://registry.npm.taobao.org/vuescroll/download/vuescroll-4.16.0.tgz",
"integrity": "sha1-4OyoIPN1fSmOkSjAeRb8ubxWsUs="
},
"watchpack": {
"version": "1.6.1",
"resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.1.tgz?cache=0&sync_timestamp=1585253929080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack%2Fdownload%2Fwatchpack-1.6.1.tgz",

View File

@ -30,7 +30,8 @@
"vue-layer": "^1.2.0",
"vue-resource": "^1.5.1",
"vue-router": "^3.0.1",
"vue-wechat-title": "^2.0.5"
"vue-wechat-title": "^2.0.5",
"vuescroll": "^4.16.0"
},
"devDependencies": {
"autoprefixer": "^7.1.2",

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -5,8 +5,8 @@
<img src="@/assets/images/footer-logo.png" alt="" class="footer-logo">
<div class="footer-us">
<h4>日喀则市公共文化数字云平台</h4>
<p>联系方式0471-6965539</p>
<p>地址呼和浩特市回民区锡林北路97号</p>
<!--<p>联系方式18888888888</p>-->
<p>地址日喀则市群众艺术馆</p>
</div>
<div class="footer-link">
<h4>友情链接</h4>
@ -17,22 +17,22 @@
<div class="footer-right">
<ul>
<li>
<h4>文化云微信公众号</h4>
<img src="@/assets/images/qr-code.png" alt="">
<h4>日喀则公共文化小程序</h4>
<img src="@/assets/images/qr-code-xcx.jpg" alt="">
</li>
<li>
<h4>文化云微信公众号</h4>
<img src="@/assets/images/qr-code.png" alt="">
<h4>日喀则公共文化公众号</h4>
<img src="@/assets/images/qr-code-gzh.jpg" alt="">
</li>
<li>
<h4>文化云微信公众号</h4>
<img src="@/assets/images/qr-code.png" alt="">
<h4>日喀则公共文化APP</h4>
<img src="@/assets/images/qr-code-app.jpg" alt="">
</li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>版权所有日喀则群众艺术馆 Copyright © 2017-2018 蒙ICP备18001375号 技术支持山西腾狮科技</p>
<p>版权所有日喀则群众艺术馆 Copyright© 2020 晋ICP备17001370号-2 技术支持山西腾狮科技</p>
</div>
</div>
</template>

View File

@ -62,7 +62,7 @@
</li>
<li :class="{active: this.$route.path == '/resource' || this.$route.path == '/resourceDetail/' + this.$route.params.id}">
<router-link to="/resource" >
民间文学
数图资源
</router-link>
</li>
<li :class="{active: this.$route.path == '/volunteer' || this.$route.path == '/volunteerDetail/' + this.$route.params.id}">
@ -85,6 +85,11 @@
非遗清单
</router-link>
</li>
<li :class="{active: this.$route.path == '/cultureMap'}">
<router-link to="/cultureMap" >
文化地图
</router-link>
</li>
</ul>
</div>
</div>

View File

@ -13,6 +13,9 @@ import 'swiper/dist/css/swiper.css'
import 'vue-layer/lib/vue-layer.css'
import axios from 'axios'
import flvjs from 'flv.js/dist/flv.min'
import vuescroll from 'vuescroll'
import 'vuescroll/dist/vuescroll.css'
Vue.use(vuescroll)
Vue.use(flvjs)
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
Vue.prototype.$axios = axios

View File

@ -6,40 +6,45 @@
您的位置<router-link to="/">首页</router-link> >
</div>
</div>
<div class="character" v-for="(list,idx) in classList" :key="idx" v-if="list.isShow && classList.length > 0">
<div class="character-title">
<h2>{{list.directoriesName}}</h2>
<router-link :to="{path: '/artTrainList/' + list.newsDirectoriesId}">MORE>></router-link>
</div>
<div class="character-content">
<div class="character-left">
<span>{{list.directoriesName}}</span>
<div class="character-intro">
<p>{{list.directoriesDescription}}</p>
</div>
<div class="container">
<div class="character" v-for="(list,idx) in classList" :key="idx" v-if="list.isShow && classList.length > 0">
<div class="character-title">
<h2>{{list.directoriesName}}</h2>
<router-link :to="{path: '/artTrainList/' + list.newsDirectoriesId}">MORE>></router-link>
</div>
<div class="character-right">
<ul v-if="list.innerList.length > 0">
<li v-for="(inner,idx) in list.innerList" :key="idx" @click="goDetail(inner.templateRecordUrl)">
<div class="recommend-img">
<img :src="url + '/news/route/file/downloadfile/false/' + inner.newsContentCoverList" alt="">
<img src="@/assets/images/play.png" alt="" class="play-btn">
</div>
<div class="recommend-info">
<h3>{{inner.newsContentTitle}}</h3>
<div class="recommend-info-bottom">
<span>讲师{{inner.newsContentAuthor}}</span>
<!--<i>{{list.view}}</i>-->
<div class="character-content">
<div class="character-left">
<span>{{list.directoriesName}}</span>
<div class="character-intro">
<p>{{list.directoriesDescription}}</p>
</div>
</div>
<div class="character-right">
<ul v-if="list.innerList.length > 0">
<li v-for="(inner,idx) in list.innerList" :key="idx" @click="goDetail(inner.templateRecordUrl)">
<div class="recommend-img">
<img :src="url + '/news/route/file/downloadfile/false/' + inner.newsContentCoverList" alt="">
<img src="@/assets/images/play.png" alt="" class="play-btn">
</div>
</div>
</li>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
<div class="recommend-info">
<h3>{{inner.newsContentTitle}}</h3>
<div class="recommend-info-bottom">
<span>讲师{{inner.newsContentAuthor}}</span>
<!--<i>{{list.view}}</i>-->
</div>
</div>
</li>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
</div>
</div>
</div>
</div>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -63,7 +68,8 @@ export default {
health: [],
photography: [],
innerContent: [],
url: common.url
url: common.url,
isLoading: false
}
},
methods: {
@ -83,6 +89,7 @@ export default {
},
getNewsList: function (item) {
var self = this
self.isLoading = true
axios.get(self.url + 'news/app/newscontent/listpagenewscontentrelease', {
params: {
page: 1,
@ -90,6 +97,7 @@ export default {
newsDirectoriesId: item.newsDirectoriesId
}
}).then(function (res) {
self.isLoading = false
for (var i = 0; i < res.data.rows.length; i++) {
res.data.rows[i].newsContentCoverList = res.data.rows[i].newsContentCoverList[0].contentCoverId
}
@ -119,6 +127,8 @@ export default {
text-align center
img
width 200px
.container
min-height 500px
.location
background #e5e5e5
line-height 30px
@ -225,4 +235,13 @@ export default {
i
font-style normal
float right
.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
</style>

View File

@ -18,25 +18,30 @@
</div>
</div>
<div class="broadcast">
<ul v-if="hasData">
<router-link :to="{path: '/broadcastDetail/' + list.livePlanId}" tag="li" v-for="list in selectedList" :key="list.id">
<div class="broadcast-img">
<img :src="url + 'live/route/file/downloadfile/false/' + list.livePlanPhoto" alt="">
<img src="@/assets/images/play.svg" alt="" class="play-btn">
</div>
<div class="broadcast-info">
<h3>{{list.livePlanName}}</h3>
<p>开始时间{{list.livePlanStart}}</p>
<button v-if="list.liveStatus == 0">已结束</button>
<button v-else-if="list.liveStatus == 1" class="not-start">尚未开始</button>
<button v-else class="playing">进行中</button>
</div>
</router-link>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
<div v-if="!isLoading">
<ul v-if="hasData">
<router-link :to="{path: '/broadcastDetail/' + list.livePlanId}" tag="li" v-for="list in selectedList" :key="list.id">
<div class="broadcast-img">
<img :src="url + 'live/route/file/downloadfile/false/' + list.livePlanPhoto" alt="">
<img src="@/assets/images/play.svg" alt="" class="play-btn">
</div>
<div class="broadcast-info">
<h3>{{list.livePlanName}}</h3>
<p>开始时间{{list.livePlanStart}}</p>
<button v-if="list.liveStatus == 0">已结束</button>
<button v-else-if="list.liveStatus == 1" class="not-start">尚未开始</button>
<button v-else class="playing">进行中</button>
</div>
</router-link>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
</div>
</div>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -63,7 +68,8 @@ export default {
rows: 8,
totalPage: 1
},
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
@ -89,7 +95,9 @@ export default {
},
getBoradcastList: function () {
var self = this
self.isLoading = true
axios.get(self.url + 'live/app/liveplan/listliveplanrelease').then(function (res) {
self.isLoading = false
self.broadcast = res.data
self.selectedList = res.data
})
@ -103,6 +111,15 @@ export default {
<style lang="stylus" rel="stylesheet/stylus" scoped>
@import "~styles/public.styl"
.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
.location
background #e5e5e5
line-height 30px

View File

@ -99,7 +99,7 @@ export default {
},
changeVideo: function (idx) {
this.selectedVideo = this.videoList[idx]
this.selectedVideo.videoSrc = this.url + this.selectedVideo.recordFilePath
this.selectedVideo.videoSrc = this.selectedVideo.recordFilePath
var video = document.getElementById('myVideo')
video.src = this.selectedVideo.videoSrc
this.flv_load()

View File

@ -26,26 +26,28 @@
</div>
</div>
<div class="service-content">
<ul class="service-container" v-if="hasData">
<router-link :to="{path: '/cultureActivityDetail/' + list.activityLibraryId}" tag="li" class="service-list" v-for="(list,idx) in activityList" :key="idx">
<div class="service-img-box">
<img :src="url + 'culturalactivity/route/file/downloadfile/false/' + list.activityImage" alt="" class="service-img">
</div>
<div class="service-info">
<h3 class="service-name">{{list.activityTitle}}</h3>
<p class="time">{{list.activityStartTime}}{{list.activityEndTime}}</p>
<p class="activity-location">{{list.activityAddress}}</p>
<button class="sign-btn" v-if="list.activityState == 3">报名中</button>
<button class="sign-btn" v-else-if="list.activityState == 4">报名人数已满</button>
<button class="sign-btn" v-else-if="list.activityState == 5">报名结束</button>
<button class="sign-btn" v-else-if="list.activityState == 6">进行中</button>
<button class="sign-btn" v-else-if="list.activityState == 7">进入查看</button>
<button class="sign-btn" v-else-if="list.activityState == 99">已结束</button>
</div>
</router-link>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
<div v-if="!isLoading">
<ul class="service-container" v-if="hasData">
<router-link :to="{path: '/cultureActivityDetail/' + list.activityLibraryId}" tag="li" class="service-list" v-for="(list,idx) in activityList" :key="idx">
<div class="service-img-box">
<img :src="url + 'culturalactivity/route/file/downloadfile/false/' + list.activityImage" alt="" class="service-img">
</div>
<div class="service-info">
<h3 class="service-name">{{list.activityTitle}}</h3>
<p class="time">{{list.activityStartTime}}{{list.activityEndTime}}</p>
<p class="activity-location">{{list.activityAddress}}</p>
<button class="sign-btn" v-if="list.activityState == 3">报名中</button>
<button class="sign-btn" v-else-if="list.activityState == 4">报名人数已满</button>
<button class="sign-btn" v-else-if="list.activityState == 5">报名结束</button>
<button class="sign-btn" v-else-if="list.activityState == 6">进行中</button>
<button class="sign-btn" v-else-if="list.activityState == 7">进入查看</button>
<button class="sign-btn" v-else-if="list.activityState == 99">已结束</button>
</div>
</router-link>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
</div>
</div>
</div>
<div class="pager" v-if="hasData">
@ -73,6 +75,9 @@
<i v-if="showJumpBtn">/{{page.totalPage}}</i>
<button v-if="showJumpBtn" @click="doJumpPage">跳转</button>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -101,7 +106,8 @@ export default {
totalPage: 1,
activityType: ''
},
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
@ -129,6 +135,7 @@ export default {
},
getActivityList: function () {
var self = this
self.isLoading = true
axios.get(self.url + 'culturalactivity/app/activitylibrary/listpageactivitylibraryfornetrelease', {
params: self.page
}).then(function (res) {
@ -137,6 +144,7 @@ export default {
self.page.totalPage = Math.ceil(res.data.total / self.page.rows)
self.page.page = res.data.page
self.changePage = res.data.page
self.isLoading = false
})
},
changeTab: function (btn) {
@ -329,4 +337,13 @@ export default {
vertical-align middle
color #fff
font-size 14px
.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
</style>

View File

@ -17,7 +17,7 @@
</div>
<div class="dynamics">
<div class="dynamics-left">
<div class="dynamics-list">
<div class="dynamics-list" v-if="!isLoading">
<ul v-if="hasData">
<li v-for="(list,idx) in requestList" :key="idx" @click="goDetail(list.templateRecordUrl)">
<div class="dynamics-list-left">
@ -60,6 +60,9 @@
<i v-if="showJumpBtn">/{{page.totalPage}}</i>
<button v-if="showJumpBtn" @click="doJumpPage">跳转</button>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -89,7 +92,8 @@ export default {
newsDirectoriesId: '',
newsDirectoriesParentId: 'f497904b-7727-4832-891c-604c36ae4167'
},
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
@ -107,6 +111,7 @@ export default {
},
getNews: function () {
var self = this
self.isLoading = true
axios.get(self.url + 'news/app/newscontent/listpagenewscontentrelease', {
params: self.page
}).then(function (res) {
@ -116,6 +121,7 @@ export default {
self.requestList = res.data.rows
self.page.page = res.data.page
self.page.totalPage = Math.ceil(res.data.total / self.page.rows)
self.isLoading = false
})
},
paging: function (page) {
@ -190,32 +196,41 @@ export default {
color #fff
.dynamics
width 1200px
min-height 500px
margin 20px auto
overflow hidden
.dynamics-list
min-height 500px
ul
&:after
content ''
display block
clear both
li
width: 280px;
box-shadow: 0px 0px 10px 0px rgba(176,176,176,0.3);
box-sizing: border-box;
float: left;
margin-right: 25px;
margin-bottom: 25px;
cursor: pointer;
&:nth-child(4n)
margin-right 0
width 49%
box-shadow 0px 0px 10px 0px rgba(176,176,176,0.3)
box-sizing border-box
cursor pointer
overflow hidden
margin-bottom 20px
border-radius 5px
&:nth-child(odd)
float left
&:nth-child(even)
float right
&:hover
box-shadow 0px 0px 20px 0px rgba(176,176,176,0.9)
.dynamics-list-left
width 100%
height 185px
width 130px
height 130px
float left
img
width 100%
height 100%
.dynamics-list-right
padding 10px 20px
text-align center
float right
width 450px
padding 10px
box-sizing border-box
h3
font-size 18px
color #565656
@ -312,4 +327,13 @@ export default {
vertical-align middle
color #fff
font-size 14px
.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
</style>

View File

@ -0,0 +1,195 @@
<template>
<div>
<Header></Header>
<div class="location">
<div class="location-content">
您的位置<router-link to="/">首页</router-link> >
</div>
</div>
<div class="map">
<div id="map" ref="map" class="map-container"></div>
<div class="venue-list">
<div class="title">全部场馆</div>
<vue-scroll class="venue-list-box">
<ul>
<li v-for="(venue,idx) in venueList" :key="idx" @click="initMap(venue.longitude, venue.latitude, 16, idx)" :id="'list' + idx">
<img src="@/assets/images/venue-active.png" alt="" class="selected" v-if="selectedVenue == idx">
<img :src="url + '/route/file/downloadfile/false/' + venue.venuePanorama" alt="">
<p>{{venue.venueName}}</p>
</li>
</ul>
</vue-scroll>
</div>
</div>
<Footer></Footer>
</div>
</template>
<script>
import Header from '@/common/components/Header'
import Footer from '@/common/components/Footer'
import axios from 'axios'
import common from '@/common/components/common.js'
export default {
name: 'CultureMap',
components: {
Header,
Footer
},
data () {
return {
ops: {
vuescroll: {},
scrollPanel: {},
rail: {
keepShow: true
},
bar: {
hoverStyle: true,
onlyShowBarOnScroll: false, //
background: 'black'
}
},
arrayList: [],
venueList: [],
url: 'http://192.168.1.3:8082/venuebooking',
lng: '88.886487',
lat: '29.276981',
mapLevel: 14,
selectedVenue: '*'
}
},
// watch: {
// selectedVenue () {
// this.$nextTick(() => {
// this.$refs.activeRef[0].focus()
// })
// }
// },
methods: {
initMap: function (lng, lat, lv, idx) {
var self = this
if (!lng) {
lng = this.lng
}
if (!lat) {
lat = this.lat
}
if (!lv) {
lv = this.mapLevel
}
if (idx !== '') {
this.selectedVenue = idx
} else {
this.selectedVenue = '*'
}
let map = new BMap.Map(this.$refs.map)
map.centerAndZoom(new BMap.Point(lng, lat), lv)// ,
map.setCurrentCity('日喀则')//
map.enableScrollWheelZoom(true) //
function showPoly (pointList) {
//
for (var c = 0; c < pointList.length; c++) {
var marker = new BMap.Marker(pointList[c])
var markers = pointList[c]
map.addOverlay(marker)
var html = '<div><a href="http://192.168.1.150:8080/#/cultureVenueDetail/' + self.venueList[c].venuesInfoId + '" style="display: block">'
html += '<h3 style="">' + self.venueList[c].venueName + '</h3>'
html += '<img src="' + self.url + '/route/file/downloadfile/false/' + self.venueList[c].venuePanorama + '" style="width: 100%;height: 130px">'
html += '<p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"><span title="' + self.venueList[c].venuePosition + '">' + self.venueList[c].venuePosition + '</span></p></a></div>'
let infoWindow = new BMap.InfoWindow('', {
width: 180, //
height: 180, //
title: html //
})
markerFun(markers, infoWindow, c)
}
}
function markerFun (marker, infoWindows, idx) {
let markers = new BMap.Marker(marker)
map.addOverlay(markers) //
//
markers.addEventListener('click', function (event) {
self.selectedVenue = idx
document.getElementById('list' + idx).scrollIntoView({
block: 'end',
behavior: 'smooth'
})
map.openInfoWindow(infoWindows, marker) //
})
}
showPoly(this.arrayList)
},
getPointe: function () {
var self = this
axios.get('http://192.168.1.3:8082/venuebooking/app/venuesmap/listrangevenuesinforelease').then(function (res) {
for (var i = 0; i < res.data.data.length; i++) {
var p = new BMap.Point(res.data.data[i].longitude, res.data.data[i].latitude)
self.arrayList.push(p)
res.data.data[i].venuePanorama = res.data.data[i].venuePanorama.split(',')[0]
}
self.venueList = res.data.data
self.initMap()
})
}
},
mounted: function () {
this.getPointe()
}
}
</script>
<style lang="stylus" rel="stylesheet/stylus" scoped>
.location
font-family 'zangwen'
background #e5e5e5
line-height 30px
.location-content
width 1200px
margin 0 auto
font-size 14px
color #565656
.map
width 100%
height 500px
position relative
.map-container
width 100%
height 100%
.venue-list
position absolute
top 20px
right 80px
bottom 20px
width 240px
background #fff
border-radius 6px
box-shadow 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12)
padding 5px 0 20px
.title
font-size 16px
line-height 24px
color #4d4d4d
padding 5px 20px
.venue-list-box
height 400px !important
ul
li
padding 10px 20px
border-bottom 1px solid #DEDEDE
cursor pointer
position relative
img
width 100%
height 115px
border-radius 10px
margin-bottom 10px
&.selected
position absolute
top 50px
left 0
width 40px
height 40px
margin 0
</style>

View File

@ -13,32 +13,33 @@
<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>
<button :class="{active: page.venueCity == ''}" @click="getAreaList(null)">全部</button>
<button v-for="(btn,idx) in cityList" :key="idx" @click="getAreaList(btn.dictionaryId)" :class="{active: page.venueCity == btn.dictionaryId}">{{btn.dictionaryName}}</button>
</div>
<!--<div class="select-line">-->
<!--<span>选择城市></span>-->
<!--<button :class="{active: page.venueCity == ''}" @click="getAreaList(null)">全部</button>-->
<!--<button v-for="(btn,idx) in cityList" :key="idx" @click="getAreaList(btn.dictionaryId)" :class="{active: page.venueCity == btn.dictionaryId}">{{btn.dictionaryName}}</button>-->
<!--</div>-->
<div class="select-line">
<span>选择区域></span>
<div style="display: inline-block" v-if="hasArea">
<div style="display: inline-block;width: 95%;">
<button :class="{active: page.venueArea == ''}" @click="changeArea(null)">全部</button>
<button v-for="(btn,idx) in areaList" :key="idx" @click="changeArea(btn.dictionaryId)" :class="{active: page.venueArea == btn.dictionaryId}">{{btn.dictionaryName}}</button>
</div>
<div style="display: inline-block;line-height: 30px" v-else>请选择城市</div>
</div>
</div>
</div>
<div class="venue">
<ul v-if="hasData">
<router-link :to="{path: '/cultureVenueDetail/' + list.venuesInfoId}" tag="li" class="venue-list" v-for="list in venueList" :key="list.id">
<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 v-if="!isLoading">
<ul v-if="hasData">
<router-link :to="{path: '/cultureVenueDetail/' + list.venuesInfoId}" tag="li" class="venue-list" v-for="list in venueList" :key="list.id">
<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>
</div>
</div>
<div class="pager" v-if="hasData">
@ -66,6 +67,9 @@
<i v-if="showJumpBtn">/{{page.totalPage}}</i>
<button v-if="showJumpBtn" @click="doJumpPage">跳转</button>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -96,13 +100,11 @@ export default {
venueCity: '',
venueArea: ''
},
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
hasArea: function () {
return this.page.venueCity !== ''
},
hasData () {
return this.venueList.length > 0
},
@ -141,25 +143,21 @@ export default {
self.typeList = res.data.data
})
},
getCityList: function () {
// getCityList: function () {
// var self = this
// axios.get(self.url + 'venuebooking/app/venuedictionary/listvenuedictionarybyparentidrelease/5f61c256-2c91-4065-b8f3-0ccbd535e582').then(function (res) {
// self.cityList = res.data.data
// })
// },
getAreaList: function () {
var self = this
axios.get(self.url + 'venuebooking/app/venuedictionary/listvenuedictionarybyparentidrelease/5f61c256-2c91-4065-b8f3-0ccbd535e582').then(function (res) {
self.cityList = res.data.data
})
},
getAreaList: function (id) {
var self = this
if (id) {
self.page.venueCity = id
} else {
self.page.venueCity = ''
}
axios.get(self.url + 'venuebooking/app/venuedictionary/listvenuedictionarybyparentidrelease/' + id).then(function (res) {
axios.get(self.url + 'venuebooking/app/venuedictionary/listvenuedictionarybyparentidrelease/fbd845d6-a74b-457a-8da1-fec66ab0d400').then(function (res) {
self.areaList = res.data.data
})
},
getVenueList: function () {
var self = this
self.isLoading = true
axios.get(self.url + 'venuebooking/app/venuesinfo/listpagevenuesinforelease', {
params: self.page
}).then(function (res) {
@ -170,12 +168,14 @@ export default {
self.page.page = res.data.page
self.changePage = res.data.page
self.page.totalPage = Math.ceil(res.data.total / self.page.rows)
self.isLoading = false
})
}
},
mounted () {
this.getTypeList()
this.getCityList()
// this.getCityList()
this.getAreaList()
this.getVenueList()
}
}
@ -205,6 +205,8 @@ export default {
font-size 14px
span
color #565656
vertical-align top
line-height 30px
button
font-family 'zangwen'
width 80px
@ -325,4 +327,13 @@ export default {
vertical-align middle
color #fff
font-size 14px
.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
</style>

View File

@ -33,7 +33,7 @@
<div class="venue-map">
<img src="@/assets/images/guide-img.png" alt="">
<baidu-map class="map-container" :center="center" :zoom="zoom" @ready="getVenueDetail">
<bm-marker :position="center" :dragging="true" animation="BMAP_ANIMATION_BOUNCE">
<bm-marker :position="center" :dragging="false" animation="BMAP_ANIMATION_BOUNCE">
<bm-label :content="venueInfo.venueName" :labelStyle="labelStyle" :offset="{width: -50, height: 30}"/>
</bm-marker>
</baidu-map>

View File

@ -7,17 +7,22 @@
</div>
</div>
<div class="exhibition">
<ul>
<li v-for="(list,idx) in exhibition" :key="idx" @click="goDetail(list.templateRecordUrl)">
<div class="exhibition-img">
<img :src="url + 'news/route/file/downloadfile/false/' + list.newsContentCoverList" alt="">
</div>
<div class="exhibition-info">
<h1>{{list.newsContentTitle}}</h1>
<p>作者{{list.newsContentAuthor}}</p>
</div>
</li>
</ul>
<div v-if="!isLoading">
<ul v-if="hasData">
<li v-for="(list,idx) in exhibition" :key="idx" @click="goDetail(list.templateRecordUrl)">
<div class="exhibition-img">
<img :src="url + 'news/route/file/downloadfile/false/' + list.newsContentCoverList" alt="">
</div>
<div class="exhibition-info">
<h1>{{list.newsContentTitle}}</h1>
<p>作者{{list.newsContentAuthor}}</p>
</div>
</li>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
</div>
</div>
</div>
<div class="pager" v-if="hasData">
<span @click="paging(1)">首页</span>
@ -44,6 +49,9 @@
<i v-if="showJumpBtn">/{{page.totalPage}}</i>
<button v-if="showJumpBtn" @click="doJumpPage">跳转</button>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -69,7 +77,8 @@ export default {
totalPage: 1,
newsDirectoriesId: 'f1d5d313-f728-4dda-9843-1116d97e17b0'
},
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
@ -94,12 +103,14 @@ export default {
},
getList: function () {
var self = this
self.isLoading = true
axios.get(self.url + 'news/app/newscontent/listpagenewscontentrelease', {
params: self.page
}).then(function (res) {
for (var i = 0; i < res.data.rows.length; i++) {
res.data.rows[i].newsContentCoverList = res.data.rows[i].newsContentCoverList[0].contentCoverId
}
self.isLoading = false
self.exhibition = res.data.rows
self.page.page = res.data.page
self.page.totalPage = Math.ceil(res.data.total / self.page.rows)
@ -114,6 +125,20 @@ export default {
<style lang="stylus" rel="stylesheet/stylus" scoped>
@import "~styles/public.styl"
.no-data
padding 80px 0
text-align center
img
width 200px
.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
.location
background #e5e5e5
line-height 30px

View File

@ -46,7 +46,8 @@ export default {
literature: [],
dynamicsPage: {
page: 1,
rows: 5
rows: 5,
newsDirectoriesParentId: 'f497904b-7727-4832-891c-604c36ae4167'
},
activityPage: {
page: 1,
@ -115,7 +116,7 @@ export default {
params: {
page: 1,
rows: 3,
newsDirectoriesParentId: '51ae7beb-f277-47a4-937a-088e6d47656d'
newsDirectoriesId: 'eab0ca3c-d35d-4c02-9397-ace2bdd10fc1'
}
}).then(function (res) {
for (var i = 0; i < res.data.rows.length; i++) {

View File

@ -2,7 +2,7 @@
<div class="index-swiper">
<swiper ref="mySwiper" :options="swiperOptions" class="swiper-outer">
<swiper-slide class="swiper-box" v-for="(swiper,idx) in swiperList" :key="idx">
<img :src="url + 'news/route/file/downloadfile/false/' + swiper.newsContentCoverList" alt="" class="banner-img">
<img :src="url + 'news/route/file/downloadfile/false/' + swiper.newsContentCoverList" alt="" class="banner-img" @click="goDetail(swiper.templateRecordUrl)">
</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
@ -20,11 +20,16 @@ export default {
return {
swiperOptions: {
pagination: '.swiper-pagination',
loop: true,
// loop: true,
autoplay: 3000
},
url: common.url
}
},
methods: {
goDetail: function (url) {
window.location.href = this.url + url
}
}
}
</script>
@ -51,6 +56,7 @@ export default {
width 100%
height 100%
.swiper-box
cursor pointer
.banner-img
width 100%
height 100%

View File

@ -15,8 +15,8 @@
<p>国家级名录将非物质文化遗产分为十大门类其中五个门类的名称在2008年有所调整并沿用至今十大门类分别为民间文学传统音乐传统舞蹈传统戏剧曲艺传统体育游艺与杂技传统美术传统技艺传统医药民俗每个代表性项目都有一个专属的项目编号编号中的罗马数字代表所属门类如传统音乐类国家级项目侗族大歌的项目编号为-28</p>
</div>
</div>
<div class="heritage-list">
<table>
<div class="heritage-list" v-if="!isLoading">
<table v-if="hasData">
<thead>
<tr>
<th width="8%">序号</th>
@ -42,8 +42,11 @@
</tr>
</tbody>
</table>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
</div>
</div>
<div class="pager">
<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">
@ -66,6 +69,9 @@
<span @click="paging(page.totalPage)">尾页</span>
</div>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -89,21 +95,27 @@ export default {
totalPage: 1
},
heritageList: [],
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
showJumpBtn () {
return this.heritageList.length > 1
},
hasData () {
return this.heritageList.length > 0
}
},
methods: {
getHeritageInfo () {
var self = this
self.isLoading = true
axios.get(self.url + 'library/app/intangiblelibrary/listpageintangiblelibraryrelease', {
params: self.page
}).then(function (res) {
if (res.status === 200) {
self.isLoading = false
self.heritageList = res.data.rows
self.page.currentPage = res.data.page
}
@ -118,6 +130,20 @@ export default {
<style lang="stylus" rel="stylesheet/stylus" scoped>
@import "~styles/public.styl"
.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
.no-data
padding 80px 0
text-align center
img
width 200px
.location
background #e5e5e5
line-height 30px

View File

@ -16,17 +16,25 @@
</div>
</div>
<div class="resource">
<ul>
<router-link :to="{path: '/resourceDetail/' + list.intangibleLibraryDataId}" tag="li" v-for="(list,idx) in resource" :key="idx">
<div class="resource-img">
<img :src="url + 'library/route/file/downloadfile/false/' + list.libraryDataCover" alt="">
</div>
<div class="resource-info">
<h3>{{list.libraryDataTitle}}</h3>
<p>{{list.libraryDataAuthor}}</p>
</div>
</router-link>
</ul>
<div v-if="!isLoading">
<ul v-if="hasData">
<router-link :to="{path: '/resourceDetail/' + list.intangibleLibraryDataId}" tag="li" v-for="(list,idx) in resource" :key="idx">
<div class="resource-img">
<img :src="url + 'library/route/file/downloadfile/false/' + list.libraryDataCover" alt="">
</div>
<div class="resource-info">
<h3>{{list.libraryDataTitle}}</h3>
<p>{{list.libraryDataAuthor}}</p>
</div>
</router-link>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
</div>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
</div>
<div class="pager" v-if="hasData">
<span @click="paging(1)">首页</span>
@ -79,7 +87,8 @@ export default {
rows: 10,
totalPage: 1
},
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
@ -106,6 +115,7 @@ export default {
},
getTypeList: function () {
var self = this
self.isLoading = true
axios.get(self.url + 'library/app/intangiblelibrary/listpageintangiblelibraryrelease?libraryDirectoriesId=b05bdd02-28b6-451e-9fe1-3d96543c1658').then(function (res) {
self.typeList = res.data.rows
self.selected = res.data.rows[0].intangibleLibraryId
@ -117,6 +127,7 @@ export default {
axios.get(self.url + 'library/app/intangiblelibrarydata/listpageintangiblelibrarydatarelease/' + self.selected, {
params: self.page
}).then(function (res) {
self.isLoading = false
self.resource = res.data.rows
self.page.totalPage = Math.ceil(res.data.total / self.page.rows)
})
@ -138,6 +149,15 @@ export default {
<style lang="stylus" rel="stylesheet/stylus" scoped>
@import "~styles/public.styl"
.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
.location
background #e5e5e5
line-height 30px
@ -146,6 +166,11 @@ export default {
margin 0 auto
font-size 14px
color #565656
.no-data
padding 80px 0
text-align center
img
width 200px
.select
padding 10px 0 0
background #f0f0f0
@ -180,7 +205,10 @@ export default {
margin 20px auto
min-height 500px
ul
overflow hidden
&:after
content: ''
display block
clear both
li
width 215px
float left

View File

@ -203,10 +203,11 @@
<th width="8%">序号</th>
<th width="8%">编号</th>
<th width="20%">名称</th>
<th width="17%">公布时间</th>
<th width="10%">公布时间</th>
<th width="10%">类型</th>
<th width="17%">申报地区或单位</th>
<th width="15%">申报地区或单位</th>
<th width="20%">保护单位</th>
<th width="9%">操作</th>
</tr>
</thead>
<tbody>
@ -218,6 +219,7 @@
<td>{{list.libraryTypeValue}}</td>
<td>{{list.libraryArea}}</td>
<td>{{list.libraryAuthor}}</td>
<td><router-link :to="{path: '/intangibleHeritageDetail/' + list.intangibleLibraryId}" class="go-detail">查看详情</router-link></td>
</tr>
</tbody>
</table>
@ -534,19 +536,22 @@ export default {
font-size 12px
border-radius 4px
.service-container
overflow hidden
&:after
content ''
display block
clear both
.service-list
float left
width 280px
box-sizing border-box
border 1px solid #a8a8a8
box-shadow:0px 0px 10px 0px rgba(176,176,176,0.3);
margin-right 26px
cursor pointer
margin-bottom 26px
&:nth-child(4n)
margin-right 0
&:hover
background #eee
box-shadow:0px 0px 20px 0px rgba(176,176,176,0.9);
.service-img-box
width 100%
height 185px
@ -598,7 +603,10 @@ export default {
cursor pointer
.venue
ul
overflow hidden
&:after
content ''
display block
clear both
.venue-list
float left
width 280px
@ -607,8 +615,11 @@ export default {
margin-right 26px
margin-bottom 26px
cursor pointer
box-shadow:0px 0px 10px 0px rgba(176,176,176,0.3);
&:nth-child(4n)
margin-right 0
&:hover
box-shadow:0px 0px 20px 0px rgba(176,176,176,0.9);
img
width 100%
height 185px
@ -632,15 +643,20 @@ export default {
text-overflow: ellipsis
.art
ul
overflow hidden
&:after
content ''
display block
clear both
li
float left
width: 280px
border solid 1px #dedede
box-shadow:0px 0px 10px 0px rgba(176,176,176,0.3);
margin-right 26px
cursor pointer
box-sizing border-box
margin-bottom 10px
&:hover
box-shadow:0px 0px 20px 0px rgba(176,176,176,0.9);
&:nth-child(4n)
margin-right 0
.recommend-img
@ -671,7 +687,10 @@ export default {
float right
.broadcast
ul
overflow hidden
&:after
content ''
display block
clear both
li
width 280px
box-sizing border-box
@ -679,7 +698,9 @@ export default {
margin-right 26px
margin-bottom 20px
cursor pointer
border solid 1px #dedede
box-shadow:0px 0px 10px 0px rgba(176,176,176,0.3);
&:hover
box-shadow:0px 0px 20px 0px rgba(176,176,176,0.9);
&:last-child
margin-right 0
.broadcast-img
@ -722,16 +743,21 @@ export default {
margin 0 auto
.literature
ul
overflow hidden
&:after
content ''
display block
clear both
li
width 280px
float left
margin-right 26px
margin-bottom 15px
border 1px solid #e3e3e3
box-shadow:0px 0px 10px 0px rgba(176,176,176,0.3);
padding 15px
box-sizing border-box
cursor pointer
&:hover
box-shadow:0px 0px 20px 0px rgba(176,176,176,0.9);
&:nth-child(4n)
margin-right 0
.resource-img
@ -756,15 +782,20 @@ export default {
color: #999;
.volunteer
ul
overflow hidden
&:after
content ''
display block
clear both
li
width 280px
float left
margin-right 20px
border 1px solid #a8a8a8
box-shadow:0px 0px 10px 0px rgba(176,176,176,0.3);
box-sizing border-box
margin-bottom 20px
cursor pointer
&:hover
box-shadow:0px 0px 20px 0px rgba(176,176,176,0.9);
.volunteer-img
width 100%
height 185px
@ -812,15 +843,20 @@ export default {
cursor pointer
.exhibition
ul
overflow hidden
&:after
content ''
display block
clear both
li
width 280px
border 1px solid #a8a8a8
box-shadow:0px 0px 10px 0px rgba(176,176,176,0.3);
box-sizing border-box
float left
margin-right 25px
margin-bottom 25px
cursor pointer
&:hover
box-shadow:0px 0px 20px 0px rgba(176,176,176,0.9);
&:nth-child(4n)
margin-right 0
.exhibition-img

View File

@ -7,7 +7,7 @@
</div>
</div>
<div class="travel">
<div class="travel-content">
<div class="travel-content" v-if="!isLoading">
<ul v-if="hasData">
<li v-for="list in travel" :key="list.id" @click="goDetail(list.templateRecordUrl)">
<div class="travel-img">
@ -48,6 +48,9 @@
<i v-if="showJumpBtn">/{{page.totalPage}}</i>
<button v-if="showJumpBtn" @click="doJumpPage">跳转</button>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -73,7 +76,8 @@ export default {
totalPage: 1,
newsDirectoriesId: '51ae7beb-f277-47a4-937a-088e6d47656d'
},
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
@ -95,12 +99,14 @@ export default {
},
getTravelList: function () {
var self = this
self.isLoading = true
axios.get(self.url + 'news/app/newscontent/listpagenewscontentrelease', {
params: self.page
}).then(function (res) {
for (var i = 0; i < res.data.rows.length; i++) {
res.data.rows[i].newsContentCoverList = res.data.rows[i].newsContentCoverList[0].contentCoverId
}
self.isLoading = false
self.travel = res.data.rows
self.changePage = res.data.page
self.page.totalPage = Math.ceil(res.data.total / self.page.rows)
@ -118,6 +124,15 @@ export default {
<style lang="stylus" rel="stylesheet/stylus" scoped>
@import "~styles/public.styl"
.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
.location
background #e5e5e5
line-height 30px
@ -129,6 +144,7 @@ export default {
.travel
background #f0f0f0
padding 20px 0
min-height 400px
.travel-content
margin 0 auto
width 1200px

View File

@ -10,19 +10,24 @@
<img src="@/assets/images/volunteer.png" alt="">
</div>
<div class="volunteer">
<ul>
<router-link :to="{path: '/volunteerDetail/' + list.volunteerServiceId}" tag="li" v-for="list in volunteer" :key="list.id">
<div class="volunteer-img">
<img :src="url + 'volunteer/route/file/downloadfile/false/' + list.photo" alt="">
</div>
<div class="volunteer-info">
<h3>{{list.serviceName}}</h3>
<p>计划招募{{list.count}}</p>
<p>时间{{list.startTime}}{{list.endTime}}</p>
<button>查看详情</button>
</div>
</router-link>
</ul>
<div v-if="!isLoading">
<ul v-if="hasData">
<router-link :to="{path: '/volunteerDetail/' + list.volunteerServiceId}" tag="li" v-for="list in volunteer" :key="list.id">
<div class="volunteer-img">
<img :src="url + 'volunteer/route/file/downloadfile/false/' + list.photo" alt="">
</div>
<div class="volunteer-info">
<h3>{{list.serviceName}}</h3>
<p>计划招募{{list.count}}</p>
<p>时间{{list.startTime}}{{list.endTime}}</p>
<button>查看详情</button>
</div>
</router-link>
</ul>
<div class="no-data" v-else>
<img src="@/assets/images/no-data.png" alt="">
</div>
</div>
</div>
<div class="pager" v-if="hasData">
<span @click="paging(1)">首页</span>
@ -49,6 +54,9 @@
<i v-if="showJumpBtn">/{{page.totalPage}}</i>
<button v-if="showJumpBtn" @click="doJumpPage">跳转</button>
</div>
<div class="loading" v-if="isLoading">
<img src="@/assets/images/loading.gif" alt="">
</div>
<Footer></Footer>
</div>
</template>
@ -73,7 +81,8 @@ export default {
totalPage: 1,
rows: 12
},
url: common.url
url: common.url,
isLoading: false
}
},
computed: {
@ -95,12 +104,14 @@ export default {
},
getVolunteerList: function () {
var self = this
self.isLoading = true
axios.get(self.url + 'volunteer/app/volunteerservice/listpagevolunteerservicerelease', {
params: self.page
}).then(function (res) {
for (var i = 0; i < res.data.rows.length; i++) {
res.data.rows[i].photo = res.data.rows[i].photo.split(',')[0]
}
self.isLoading = false
self.volunteer = res.data.rows
self.page.page = res.data.page
self.changePage = res.data.page
@ -282,4 +293,18 @@ export default {
vertical-align middle
color #fff
font-size 14px
.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
.no-data
padding 80px 0
text-align center
img
width 200px
</style>

View File

@ -29,6 +29,8 @@ import SearchResult from '@/pages/SearchResult/SearchResult'
import ArtTrainList from '@/pages/ArtTrainList/ArtTrainList'
import SearchList from '@/pages/SearchList/SearchList'
import PersonCenter from '@/pages/PersonCenter/PersonCenter'
import CultureMap from '@/pages/CultureMap/CultureMap'
Vue.use(Router)
export default new Router({
@ -293,6 +295,15 @@ export default new Router({
title: '日喀则市公共文化数字云平台',
keepAlive: false
}
},
{
path: '/cultureMap',
name: 'CultureMap',
component: CultureMap,
meta: {
title: '日喀则市公共文化数字云平台',
keepAlive: false
}
}
]
})