This commit is contained in:
dong_bo0602 2022-07-04 09:07:39 +08:00
commit 705173bf42
87 changed files with 14208 additions and 0 deletions

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../:\Users\董博\Desktop\乌兰察布H5\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/乌兰察布H5.iml" filepath="$PROJECT_DIR$/.idea/乌兰察布H5.iml" />
</modules>
</component>
</project>

9
.idea/乌兰察布H5.iml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

74
activity-detail.html Normal file
View File

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="activity-slide">
<div class="swiper mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="item in activityDetail.activityImage">
<a href="javascript: void(0);">
<img :src="requestUrl + 'culturalactivity/route/file/downloadfile/true/' + item" alt="">
</a>
</div>
</div>
</div>
</div>
<div class="activity-detail">
<h3>{{activityDetail.activityTitle}}</h3>
<p class="activity-time">{{activityDetail.activityApplyStartTime}}至{{activityDetail.activityApplyEndTime}}</p>
<p class="activity-people"><span>活动人数:</span>{{activityDetail.activityUserNum}}人</p>
<p class="activity-address"><span>活动地址:</span>{{activityDetail.activityAddress}}</p>
<h4>活动详情</h4>
<div class="activity-detail-container" v-html="activityDetail.activityDetails"></div>
<h4>活动单位</h4>
<p><span>主办单位:</span>{{activityDetail.activitySponsor}}</p>
<p><span>承办单位:</span>{{activityDetail.activityOrganizer}}</p>
<p><span>协办单位:</span>{{activityDetail.activityCoOrganizer}}</p>
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
activityId: '',
activityDetail: {}
},
methods: {
getActivityDetail: function () {
var self = this
doGetForm(self.requestUrl + 'culturalactivity/app/activitylibrary/getactivitylibrarybyidrelease/' + self.activityId, {}, {}, function (code, data) {
console.log(data)
data.activityImage = data.activityImage.split(',')
self.activityDetail = data
self.$nextTick(function () {
var swiper = new Swiper(".mySwiper", {
pagination: '.swiper-pagination',
paginationClickable: true,
autoplay: 3000
});
})
})
}
},
mounted: function () {
this.activityId = window.location.search.replace('?','').split('=')[1]
this.getActivityDetail()
}
})
</script>
</body>
</html>

166
activity.html Normal file
View File

@ -0,0 +1,166 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="area">
<div class="area-box" :class="{active: page.county == ''}" @click="loadAll">全部</div>
<div class="area-box" v-for="area in areaList" :class="{active: page.county == area.areaId}" @click="changeArea(area.areaId,area.areaLevel)">{{area.areaName}}</div>
</div>
<div class="activity" v-if="activityList && activityList.length > 0">
<div class="activity-box" v-for="activity in activityList" @click="goDetail(activity.activityLibraryId)">
<div class="activity-img">
<img :src="requestUrl + 'culturalactivity/route/file/downloadfile/true/' + activity.activityImage" alt="">
<div class="status" v-if="activity.activityState == '3'">报名中</div>
<div class="status" v-if="activity.activityState == '4'">报名人数已满</div>
<div class="status" v-if="activity.activityState == '5'">停止报名</div>
<div class="status" v-if="activity.activityState == '6'">进行中</div>
<div class="status" v-if="activity.activityState == '7'">直接进入</div>
<div class="status" v-if="activity.activityState == '99'">已结束</div>
</div>
<div class="activity-info">
<h4>{{activity.activityTitle}}</h4>
<p>{{activity.activityStartTime}}至{{activity.activityEndTime}}</p>
</div>
</div>
<div class="load-more" v-if="haveMore && activityList && activityList.length > 0" @click="loadMore">加载更多</div>
</div>
<div class="no-data" v-else>
<img src="image/no-data.png" alt="">
</div>
<div class="bottom-nav">
<div class="bottom-nav-box" @click="goBottomNav('1')">
<div class="nav-icon"></div>
<span>首页</span>
</div>
<div class="bottom-nav-box active">
<div class="nav-icon"></div>
<span>活动</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('3')">
<div class="nav-icon"></div>
<span>场馆</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('4')">
<div class="nav-icon"></div>
<span>文化</span>
</div>
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el:'#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
areaList: [],
activityList: [],
page: {
page: 1,
rows: 10,
newsDirectoriesId: '6b80b810-ab37-455a-ada7-a224b904c3ce',
county: ''
},
haveMore: true,
isLoading: true
},
methods: {
getAreaList: function () {
var self = this
doGetForm(self.requestUrl + 'usercenter/app/dataarea/listareabyparentidrelease/110889', {}, null, function (code, data) {
self.areaList = data
})
},
changeArea: function (id, lv) {
if (!this.isLoading) {
var level = parseInt(lv) + 1
level = 'area' + level
this.page.county = id
this.page[level] = id
this.page.page = 1
this.haveMore = true
this.getActivityList()
}
},
loadAll: function () {
if (!this.isLoading) {
this.page = {
page: 1,
rows: 10,
newsDirectoriesId: '6b80b810-ab37-455a-ada7-a224b904c3ce',
county: ''
}
this.haveMore = true
this.getActivityList()
}
},
getActivityList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'culturalactivity/app/activitylibrary/listpageactivitylibraryfornetrelease', self.page, null, function (code, data) {
if (self.page.page == '1') {
self.activityList = data.rows
if (data.rows.length > 0) {
self.haveMore = true
} else {
self.haveMore = false
}
self.isLoading = false
return
}
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
self.activityList.push(data.rows[i])
}
self.haveMore = true
} else {
self.page.page--
self.haveMore = false
layer.msg('暂无更多')
}
self.isLoading = false
})
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getActivityList()
}
},
// 底部导航
goBottomNav: function (nav) {
if (nav == '1') {
window.location.href = 'index.html'
} else if (nav == '3') {
window.location.href= 'venue.html'
} else {
window.location.href= 'culture.html'
}
},
goDetail: function (id) {
if (!this.isLoading) {
window.location.href = 'activity-detail.html?id=' + id
}
}
},
mounted: function () {
this.getAreaList()
this.getActivityList()
}
})
</script>
</body>
</html>

187
comprehensive.html Normal file
View File

@ -0,0 +1,187 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="area">
<!-- <div class="area-box" v-for="type in typeList" :class="{active: curType == type.newsDirectoriesId}" @click="changeType(type.newsDirectoriesId)">{{type.directoriesName}}</div>-->
<div class="area-box" :class="{active: curType == '588555a2-cfce-426c-8f60-4f76e8e59842'}" @click="changeType('588555a2-cfce-426c-8f60-4f76e8e59842')">通知公告</div>
<div class="area-box" :class="{active: curType == '1e494b7f-d0e4-4baa-acfe-57268247e0e4'}" @click="changeType('1e494b7f-d0e4-4baa-acfe-57268247e0e4')">工作动态</div>
<div class="area-box" :class="{active: curType == '05501705-aa68-4ee9-a7bf-07f45d3a8e88'}" @click="changeType('05501705-aa68-4ee9-a7bf-07f45d3a8e88')">政务公开</div>
</div>
<!-- <div class="area news-area">-->
<!-- <div class="area-box" :class="{active: page.county == ''}" @click="loadAll">全部</div>-->
<!-- <div class="area-box" v-for="area in areaList" :class="{active: page.county == area.areaId}" @click="changeArea(area.areaId,area.areaLevel)">{{area.areaName}}</div>-->
<!-- </div>-->
<div class="news-list" :style="{'margin-top': toTop}" v-if="newsList && newsList.length > 0">
<div class="news-list-box" v-for="news in newsList" @click="goDetail(news.newsContentLink, news.templateRecordUrl, news.newsContentType, news.newsContentContent)">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + news.newsContentCoverList" alt="">
<div class="news-list-info">
<h3>{{news.newsContentTitle}}</h3>
<p>作者:{{news.newsContentAuthor}}</p>
</div>
</div>
<div class="load-more" v-if="haveMore && newsList && newsList.length > 0" @click="loadMore">加载更多</div>
</div>
<div class="no-data" v-else>
<img src="image/no-data.png" alt="">
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
areaList: [],
typeList: [],
newsList: [],
curType: '588555a2-cfce-426c-8f60-4f76e8e59842',
page: {
page: 1,
rows: 10,
newsDirectoriesId: '588555a2-cfce-426c-8f60-4f76e8e59842',
county: ''
},
requestUrl: 'http://219.159.20.131:8081/',
haveMore: true,
isLoading: false,
toTop: ''
},
methods: {
getAreaList: function () {
var self = this
doGetForm(self.requestUrl + 'usercenter/app/dataarea/listareabyparentidrelease/110889', {}, null, function (code, data) {
self.areaList = data
})
},
changeArea: function (id, lv) {
if (!this.isLoading) {
var level = parseInt(lv) + 1
level = 'area' + level
this.page.county = id
this.page[level] = id
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getTypeList: function () {
var self = this
doGetForm(self.requestUrl + 'news/app/newsdirectories/listnewsdirectoriesrelease', {
directoriesParentId: self.page.newsDirectoriesId
}, {}, function (code, data) {
self.typeList = data
self.curType = data[0].newsDirectoriesId
self.page.newsDirectoriesId = data[0].newsDirectoriesId
self.getNewsList()
})
},
changeType: function (type) {
if (!this.isLoading) {
this.curType = type
this.page.newsDirectoriesId = type
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getNewsList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'news/app/newscontent/listpagenewscontentrelease', self.page, {}, function (code, data) {
if (self.page.page == '1') {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.newsList = data.rows
if (data.rows.length > 0) {
self.haveMore = true
self.isLoading = false
} else {
self.haveMore = false
self.isLoading = false
}
return
} else {
self.newsList = []
self.haveMore = false
self.isLoading = false
}
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.haveMore = true
self.isLoading = false
} else {
self.page.page--
self.haveMore = false
self.isLoading = false
layer.msg('暂无更多')
}
}
})
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getNewsList()
}
},
loadAll: function () {
if (!this.isLoading) {
var self = this
this.page = {
page: 1,
rows: 10,
newsDirectoriesId: self.curType,
county: ''
}
this.haveMore = true
this.getNewsList()
}
},
// 新闻详情
goDetail: function (link, url, type, outlink) {
if (!this.isLoading) {
if (type === '6') {
window.open(outlink)
} else {
if (link) {
window.open(link)
} else {
window.location.href = this.requestUrl + url
}
}
}
},
},
mounted: function () {
// this.page.newsDirectoriesId = window.location.search.replace('?','').split('=')[1]
// this.getAreaList()
// this.getTypeList()
this.getNewsList()
this.toTop = $('.area').height() + 'px'
}
})
</script>
</body>
</html>

1
css/reset.css Normal file
View File

@ -0,0 +1 @@
@charset "utf-8";a,body,dd,div,dl,dt,em,form,h1,h2,h3,h4,h5,h6,img,input,li,ol,option,p,select,span,strong,table,td,textarea,th,ul,var{margin:0;padding:0}body,html{font:400 100% "微软雅黑",Arail,Tabhoma;text-align:left;color:#535353;-webkit-font-smoothing:antialiased;line-height:normal}ol,ul{list-style:none}img{border:0;vertical-align:top}input,select,textarea{outline:0}textarea{resize:none}table{border-collapse:collapse;border-spacing:0}em,strong,th,var{font-weight:400;font-style:normal}a{text-decoration:none;color:#555}a,input{-webkit-tap-highlight-color:transparent}[v-cloak]{display: none}

249
css/style.css Normal file
View File

@ -0,0 +1,249 @@
body{background:#fafafa}
#app{padding:.2rem;font-size:0}
.swiper{border-radius:.2rem;overflow:hidden;position:relative}
.swiper-slide a{display:block}
.swiper-slide a img{width:100%;height:3.5rem}
.swiper-pagination{width: 100%;bottom: 10px;}
.nav,.venue-container{margin-top:.3rem;width:100%;overflow-x:scroll;overflow-y:visible;white-space:nowrap}
.nav-box{display:inline-block;width:25%}
.nav-box img{width:1rem;height:1rem;display:block;margin:0 auto .2rem}
.nav-box p{font-size:.28rem;color:#122939;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.venue{margin-top:.4rem}
.venue h3{font-size:.34rem;color:#122939}
.venue-box{display:inline-block;width:2.7rem;background:#fff;box-shadow:0 2px 8px 0 rgba(35,24,21,.1);border-radius:.12rem;overflow:hidden;margin-right:.2rem}
.venue-box:last-child{margin-right:0}
.venue-box img{width:100%;height:1.2rem}
.venue-info{padding:.15rem}
.venue-info h4{font-size:.24rem;color:#122939;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.venue-info p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.22rem;color:#999;padding-left:.25rem}
.venue-info p.phone{background:url(../image/phone.png) no-repeat left center;background-size:.16rem .2rem}
.venue-info p.time{background:url(../image/time.png) no-repeat left center;background-size:.14rem .14rem}
.bottom-text{margin: .2rem 0 1rem;}
.bottom-text p{text-align: center;font-size: .22rem;color: #122939;line-height: .5rem;}
.news-box{padding:.2rem;overflow:hidden;border-bottom:1px solid #eee;background:#fff}
.news-box h4{font-size:.3rem;color:#122939;margin-bottom:.2rem}
.big-img-box img{width:100%}
.news-box p{font-size:.24rem;color:#999;margin-top:.2rem}
.style3 .news-info{float:left;width:68%}
.style3 .news-img{float:right;width:30%;height:1.5rem}
.style3 .news-img img{width:100%;height:100%}
.style2 .news-info{float:right!important}
.style2 .news-img{float:left!important}
.three-img img{width:32%;height:1.5rem;margin-right:2%}
.three-img img:last-child{margin-right:0}
.live{margin-bottom:1.2rem}
.live-container{overflow:hidden;margin-top:.2rem}
.live-box{width:49%}
.live-box:nth-child(odd){float:left}
.live-box:nth-child(even){float:right}
.live-box p{font-size:.26rem;color:#122939;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 .1rem}
.live-img{position:relative;border-radius:.2rem;overflow:hidden}
.live-img img{width:100%;height:2.2rem}
.live-img span{position:absolute;left:.2rem;bottom:.2rem;background:linear-gradient(90deg,rgba(9,86,224,.97),rgba(65,127,237,.97));color:#fff;font-size:.22rem;padding:.05rem;border-radius:.1rem}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;overflow:hidden;background:#f5f5f5;z-index:1;height:1rem}
.bottom-nav-box{float:left;width:25%;text-align:center;padding:.15rem 0}
.bottom-nav-box span{font-size:.22rem;color:#333}
.nav-icon{height:.4rem}
.bottom-nav-box:first-child .nav-icon{background:url(../image/index.png) no-repeat center;background-size:.37rem .4rem}
.bottom-nav-box:first-child.active .nav-icon{background:url(../image/index-on.png) no-repeat center;background-size:.37rem .4rem}
.bottom-nav-box:nth-child(2) .nav-icon{background:url(../image/activity.png) no-repeat center;background-size:.37rem .4rem}
.bottom-nav-box:nth-child(2).active .nav-icon{background:url(../image/activity-on.png) no-repeat center;background-size:.37rem .4rem}
.bottom-nav-box:nth-child(3) .nav-icon{background:url(../image/venue.png) no-repeat center;background-size:.37rem .37rem}
.bottom-nav-box:nth-child(3).active .nav-icon{background:url(../image/venue-on.png) no-repeat center;background-size:.37rem .37rem}
.bottom-nav-box:nth-child(4) .nav-icon{background:url(../image/culture.png) no-repeat center;background-size:.37rem .4rem}
.bottom-nav-box:nth-child(4).active .nav-icon{background:url(../image/culture-on.png) no-repeat center;background-size:.37rem .4rem}
.area{position:fixed;top:0;left:0;right:0;background:#fff;border-bottom:1px solid #eee;z-index:1}
.area-box{display:inline-block;min-width:25%;padding:0 .1rem;box-sizing:border-box;text-align:center;line-height:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#122939;font-size:.26rem}
.area-box.active{color:#125ce1}
.activity{margin:1rem 0}
.activity-box{background:#fff;box-shadow:0 2px 8px 0 rgba(35,24,21,.1);border-radius:.12rem;overflow:hidden;margin-bottom:.2rem}
.activity-img{position:relative}
.activity-img img{width:100%;height:4rem}
.status{position:absolute;top:0;right:0;padding:.1rem .2rem;background:linear-gradient(90deg,rgba(21,113,250,.97),rgba(21,183,250,.97));color:#fff;font-size:.26rem;border-bottom-left-radius:.3rem}
.activity-info{padding:.2rem}
.activity-info h4{color:#122939;font-size:.28rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.activity-info p{font-size:.24rem;color:#999;padding-left:.25rem;background:url(../image/time.png) no-repeat left center;background-size:.2rem .2rem}
.load-more{text-align:center;color:#333;font-size:.28rem;margin-top:.2rem}
.no-data{margin-top:3rem;text-align:center}
.no-data img{width:3rem}
.activity-slide{position:absolute;top:0;left:0;right:0;height:3.5rem;background:red}
.activity-slide .swiper{border-radius:0}
.activity-detail{width:7.1rem;margin:3rem auto 0;background:#fff;box-shadow:0 2px 8px 0 rgba(35,24,21,.1);border-radius:.3rem .3rem 0 0;position:relative;z-index:1000;padding:.35rem;box-sizing:border-box}
.activity-detail h3{font-size:.3rem;color:#122939}
.activity-detail .activity-time{font-size:.24rem;color:#999;margin:.2rem 0}
.activity-address,.activity-people{padding-left:.3rem}
.activity-detail p{font-size:.24rem;color:#122939}
.activity-detail p span{color:#999}
.activity-people{background:url(../image/people.png) no-repeat left center;background-size:.24rem .19rem;margin-bottom:.1rem}
.activity-address{background:url(../image/address.png) no-repeat left .05rem;background-size:.2rem .24rem}
.activity-detail h4{font-size:.28rem;color:#122939;margin:.4rem 0 .1rem}
.activity-detail-container{font-size:.26rem;color:#122939;line-height:.45rem}
.activity-detail-container img{width:100%}
.venue-type{overflow:hidden;background:#fff;box-shadow:0 2px 8px 0 rgba(35,24,21,.1);border-radius:.1rem;padding:.2rem .2rem 0;position:fixed;top:.2rem;left:.2rem;right:.2rem}
.venue-type-box{float:left;width:20%;text-align:center;margin-bottom:.2rem}
.venue-type-box img{width:.88rem;height:.88rem;display:block;margin:0 auto}
.venue-type-box p{font-size:.26rem;color:#122939;margin-top:.1rem}
.select{position:fixed;right:.2rem;left:.2rem;top:3.4rem;overflow:hidden;background:#fafafa}
.select-box{float:left;width:33.3333333%;font-size:.26rem;color:#122939;line-height:.6rem;text-align:center}
.select-box.active{color:#125ce1}
.venue-outer{margin:3.8rem auto 1rem}
.box-venue{padding:.2rem;background:#fff;box-shadow:0 2px 8px 0 rgba(35,24,21,.1);border-radius:.12rem;margin-bottom:.2rem}
.box-venue-top{overflow:hidden;padding-bottom:.2rem;border-bottom:1px solid #eee}
.box-venue-left{width:4.1rem;float:left}
.box-venue-left h3{font-size:.3rem;color:#122939}
.box-venue-left p{font-size:.26rem;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.box-venue-left p.time{color:#122939;margin:.1rem 0}
.box-venue-right{float:right;width:2.2rem}
.box-venue-right img{width:100%;height:1.55rem;border-radius:.12rem}
.box-venue-bottom{padding-top:.2rem}
.box-venue-bottom p{padding-left:.3rem;font-size:.24rem;color:#122939;background:url(../image/phone1.png) no-repeat left center;background-size:.2rem .2rem}
.select-area{position:fixed;top:0;right:0;left:0;bottom:0;background:rgba(0,0,0,.6);z-index:100000}
.select-area-container{padding:.2rem .2rem .1rem;background:#fff;overflow:hidden}
.select-area-box{width:32%;float:left;border:1px solid #eee;box-sizing:border-box;line-height:.55rem;text-align:center;border-radius:.12rem;margin-bottom:.1rem;margin-right:2%;font-size:.26rem;color:#122939;padding:0 .1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.select-area-box:nth-child(3n){margin-right:0}
.select-area-box.active{border:1px solid #125ce1;color:#125ce1}
.venue-detail-top{height:3.4rem;width:100%;box-sizing:border-box;background:url(../image/venue-detail-top.png) no-repeat center;background-size:100% 100%;padding:.5rem .4rem 0;position:absolute;top:0;right:0;left:0}
.venue-detail-left{float:left;width:4rem}
.venue-detail-left h2{font-size:.34rem;color:#fff}
.venue-detail-left p{padding-left:.28rem;font-size:.26rem;color:#fff}
.venue-detail-left p.venue-time{background:url(../image/time2.png) no-repeat left center;background-size:.2rem .2rem;margin:.2rem 0}
.venue-detail-left p.venue-phone{background:url(../image/phone2.png) no-repeat left .07rem;background-size:.2rem .2rem}
.venue-detail-left p a{color: #fff}
.venue-detail-right{float:right;width:2.4rem;height:3.1rem;border-radius:.14rem;overflow:hidden}
.swiper-slide img{width:2.4rem;height:3.1rem}
.venue-detail-content{margin-top:3.8rem}
.position,.venue-service{margin-bottom:.6rem}
.position p{font-size:.26rem;color:#122939}
.position p span{color:#999}
.venue-intro h3,.venue-service h3{font-size:.3rem;color:#122939;margin-bottom:.2rem}
.venue-service p{font-size:.26rem;color:#122939}
.venue-intro-content{font-size:.26rem;color:#122939;line-height:.5rem}
.heritage{margin-bottom:1rem}
.heritage-box{overflow:hidden;margin-bottom:.2rem}
.heritage-box-left{float:left;width:2.3rem;height:2.8rem}
.heritage-box-left img{width:100%;height:100%;border-radius:.14rem}
.heritage-box-right{width:4.6rem;float:right}
.heritage-box-right h3{font-size:.32rem;color:#122939;margin-bottom:.2rem}
.heritage-box-right p{font-size:.28rem;color:#999}
.heritage-box-right span{display:inline-block;padding:.05rem .1rem;background:#abc8fd;color:#fff;font-size:.26rem;border-radius:.1rem;margin:.1rem 0}
.detail-swiper img{height:4.86rem!important}
.heritage-info{margin:.5rem 0}
.heritage-desc h3,.heritage-info h3,.heritage-people h3{font-size:.3rem;color:#122939;margin-bottom:.2rem}
.heritage-info p{font-size:.26rem;color:#122939;line-height:.5rem;padding-left:.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.heritage-info p span{color:#999}
.heritage-info p.num{background:url(../image/hritage-icon1.png) no-repeat left center;background-size:.24rem .24rem}
.heritage-info p.time{background:url(../image/hritage-icon2.png) no-repeat left center;background-size:.24rem .24rem}
.heritage-info p.heritage-area{background:url(../image/hritage-icon3.png) no-repeat left center;background-size:.24rem .24rem}
.heritage-info p.org{background:url(../image/hritage-icon4.png) no-repeat left center;background-size:.24rem .24rem}
.heritage-info p.from{background:url(../image/hritage-icon5.png) no-repeat left center;background-size:.24rem .24rem}
.heritage-info p.lv{background:url(../image/hritage-icon6.png) no-repeat left center;background-size:.24rem .24rem}
.heritage-info p.type{background:url(../image/hritage-icon7.png) no-repeat left center;background-size:.24rem .24rem}
.heritage-info p.protect{background:url(../image/hritage-icon8.png) no-repeat left center;background-size:.24rem .24rem}
.heritage-desc-box{font-size:.26rem;color:#122939;line-height:.5rem}
.heritage-people-box{box-shadow:0 2px 8px 0 rgba(35,24,21,.1);border-radius:.12rem;margin-bottom:.2rem;padding-bottom:.2rem;overflow:hidden}
.heritage-people-name{margin-bottom:.2rem}
.heritage-people-num{display:inline-block;padding:0 .15rem;color:#fff;font-size:.24rem;background:linear-gradient(90deg,rgba(21,113,250,.97),rgba(21,183,250,.97));border-bottom-right-radius:.2rem;line-height:.5rem;margin-right:.4rem}
.heritage-people-name-box{display:inline-block;font-size:.28rem;color:#122939;font-weight:700;line-height:.5rem}
.heritage-people-name-box img{width:.2rem;height:.2rem;vertical-align:middle;margin-left:.1rem}
.heritage-people-info{overflow:hidden}
.heritage-people-info-box{float:left;width:50%;padding:0 .15rem;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.24rem}
.heritage-people-info-box span{color:#999}
.news-area{top:.8rem}
.news-list{margin-top:1.6rem;padding-top:.2rem}
.news-list-box{background:#fff;box-shadow:0 2px 8px 0 rgba(35,24,21,.1);border-radius:.12rem;overflow:hidden;margin-bottom:.2rem}
.news-list-box img{width:100%;height:3rem}
.news-list-info{padding:.2rem}
.news-list-info h3{font-size:.28rem;color:#122939;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.news-list-info p{font-size:.24rem;color:#999}
.loading{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.6);padding:.3rem;border-radius:.1rem;box-shadow:0 0 .17rem #dedede}
.toilet, .read{margin: .2rem 0;font-size: .32rem}
.toilet a, .read a{display: block;}
.toilet a img, .read a img{width: 100%}
.feedback{position: fixed;bottom: 2rem;right:.5rem;box-shadow: 0 0 10px #EEE;border-radius: 50%}
.feedback a{display: block;width:1.5rem;height:1.5rem;text-align: center;line-height: 1.5rem;font-size: .4rem;background: #fff;border-radius: 50%;color: #000;}
.feedback a img{width: 1.5rem;}
.feedback-main{width: 7.1rem;margin: 0 auto;}
.feedback-title{font-size: .32rem;color: #000;margin-bottom: .2rem;}
.feedback-main textarea{width:100%;height: 3rem;font-size:.28rem;border:none;outline:none;padding: .15rem;box-sizing: border-box;background: #eee;border-radius: .1rem;}
.contact{margin-top: .2rem;}
.contact input{width: 100%;border-radius:.1rem;margin-bottom:.2rem;padding: 0 .15rem;font-size:.28rem;box-sizing: border-box;height: .8rem;border:none;outline:none;background: #eee;}
.tip{font-size: .24rem;color: #aaa;text-align: center}
.submit-feedback{position: fixed;bottom:0;left:0;right:0;padding: .2rem;}
.submit-feedback-btn{width: 100%;height: .8rem;line-height: .8rem;text-align: center;background: linear-gradient(to right, #26b9f5, #116bf2);border-radius: .4rem;color: #fff;font-size: .32rem;}
.photo input{display: none}
.photo label{vertical-align:top;display: inline-block;width: 1rem;height: 1rem;position:relative;line-height:1rem;text-align: center;border: 2px solid #000;box-sizing: border-box;border-radius: .2rem;color: #000;font-size: .6rem}
.photo label span{position: absolute;top:50%;left:50%;transform: translate(-50%,-50%)}
.feedback-type{position: fixed;top:0;left:0;right:0;overflow: hidden;border-bottom: 1px solid #EEE;background: #fff;z-index: 100}
.type-box{float:left;width: 50%;text-align: center;line-height: .8rem;font-size: .3rem;color: #888;position: relative;}
.type-box.active{color: #000;}
.type-box.active:after{content: '';display: block;width: 1.6rem;height: 2px;background: #000;position: absolute;bottom: 0;left:50%;margin-left:-.8rem;}
.feedback-list{margin-top:.8rem;padding: 0 .2rem;}
.feedback-box{padding: .15rem 0;border-bottom: 1px solid #EEE;overflow: hidden;}
.feedback-avatar{float:left;width: 1.2rem;height: 1.2rem;}
.feedback-avatar img{width: 100%;height:100%;border-radius: 50%;}
.feedback-info{float:right;width: 5.3rem;}
.feedback-text{font-size: .28rem;color: #000;margin: .18rem 0;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.feedback-time{font-size: .24rem;color: #666;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.have-more{text-align: center;font-size: .28rem;color: #666;line-height: .8rem;}
.detail{padding: .2rem;background: #fff;}
.user-info{overflow: hidden;margin-bottom: .2rem;}
.user-avatar{float:left;margin-right: .2rem;width: 1rem;height:1rem;}
.user-avatar img{width: 100%;height:100%;border-radius: 50%}
.user-name{float:left;}
.user-name p{font-size: .28rem;color: #000;}
.user-name p.name{margin: .1rem 0;}
.detail-text{font-size: .32rem;line-height: .55rem;color: #000;}
.detail p{font-size: .26rem;color: #666;}
.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;}
.feedback-type-outer{position: fixed;top:0;left:0;right:0;bottom:0;background: rgba(0,0,0,0.6);z-index: 10000000;}
.feedback-type-container{width:100%;position: absolute;top:50%;left:50%;transform: translate(-50%,-50%);}
.feedback-type-box{display: inline-block;width: 50%;text-align: center;margin-bottom: .2rem}
.feedback-type-box img{width: 1.5rem;margin-bottom: .2rem}
.feedback-type-box p{font-size: .32rem;color: #fff}
.photo{margin-top:.2rem;}
.upload-photo-box{vertical-align:top;display: inline-block;width:32%;margin-right: 2%;position: relative;height:2rem;}
.img-box img{height:100%;position: absolute;top:50%;left:50%;transform: translate(-50%,-50%);}
.img-box{width:100%;height:100%;position: relative;overflow: hidden;}
.delete{position: absolute;width: .3rem;height:.3rem;top:-.15rem;right:-.15rem;}
.reply{margin-top: .2rem;background: #fff}
.reply-title{padding: .2rem;border-bottom: 1px solid #EEE;overflow: hidden}
.reply-title h3{float:left;font-size: .28rem;padding-left:.2rem;border-left: 4px solid greenyellow;}
.reply-title span{float:right;font-size: .28rem;color: #666}
.reply-content{padding: .2rem;}
.reply-content p{font-size: .28rem;color: #000;line-height: .55rem;word-break: break-all;}
.link-record{display:block;padding: .2rem;background: #eee;overflow: hidden;}
.record-title{float:left;padding-left: .2rem;border-left: 4px solid #1671f5;font-size: .32rem;color: #000;}
.link-record img{float:right;}
.toilet-box{overflow:hidden;display:block;margin-bottom: .2rem;padding: .2rem;background: #fff;box-shadow: 0 0 10px #FFF;border-radius: .1rem;}
.toilet-img{float:left;width: 1.5rem;height:1.5rem;overflow: hidden;border-radius: 50%;}
.toilet-img img{width:100%;height:100%;}
.toilet-info{float: right;width:5rem;}
.toilet-container{margin-top: 1rem;}
.toilet-box h3{font-size: .32rem;color: #000;font-weight: normal;}
.toilet-box p{font-size: .28rem;color: #999;}
.toilet-name{font-size: .36rem;color: #000;}
.toilet-address{font-size: .32rem;color: #999;margin: .1rem 0 .2rem;}
#map{position: absolute;bottom:0;left:0;right:0;height:92%;}
.anchorBL{display: none!important;}
.toilet-search{position: fixed;top:0;left:0;right:0;padding: .2rem;background: #fff;z-index: 1000;}
.toilet-search input{height: .6rem;width: 100%;padding: 0 .15rem;box-sizing: border-box;font-size: .3rem;border-radius: .1rem;border: 1px solid #EEE;}
.toilet-top{position: absolute;top:0;left:0;right:0;padding: .2rem;height:8%;}

15
css/swiper.css Normal file

File diff suppressed because one or more lines are too long

123
culture-detail.html Normal file
View File

@ -0,0 +1,123 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="swiper mySwiper detail-swiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="item in heritageDetail.libraryCover">
<a href="javascript: void(0);">
<img :src="requestUrl + 'library/route/file/downloadfile/true/' + item" alt="">
</a>
</div>
</div>
<div class="swiper-pagination"></div>
</div>
<div class="heritage-info">
<h3>{{heritageDetail.libraryTitle}}</h3>
<p class="num">
<span>项目编号:</span>{{heritageDetail.libraryNumber}}
</p>
<p class="time">
<span>公布时间:</span>{{heritageDetail.libraryApplyTime}}
</p>
<p class="heritage-area">
<span>所属地区:</span>{{heritageDetail.libraryArea}}
</p>
<p class="org">
<span>申报地区或单位:</span>{{heritageDetail.libraryAddress}}
</p>
<p class="from">
<span>数据来源:</span>{{heritageDetail.librarySource}}
</p>
<p class="lv">
<span>非遗等级:</span>{{heritageDetail.libraryLevel}}级
</p>
<p class="type">
<span>类型:</span>{{heritageDetail.libraryTypeValue}}
</p>
<p class="protect">
<span>保护单位:</span>{{heritageDetail.libraryAuthor}}
</p>
</div>
<div class="heritage-desc">
<h3>相关描述</h3>
<div class="heritage-desc-box" v-html="heritageDetail.librarySummary"></div>
</div>
<div class="heritage-people">
<h3>相关传承人</h3>
<div class="heritage-people-box" v-for="people in heritagePeople">
<div class="heritage-people-name">
<div class="heritage-people-num">{{people.libraryPersonNumber}}</div>
<div class="heritage-people-name-box">
{{people.libraryPersonName}}
<img src="image/man.png" alt="" v-if="people.libraryPersonSex == '1'">
<img src="image/woman.png" alt="" v-else>
</div>
</div>
<div class="heritage-people-info">
<div class="heritage-people-info-box">
<span>民族:</span>{{people.libraryPersonNationDictionaryName}}
</div>
<div class="heritage-people-info-box">
<span>出生日期:</span>{{people.libraryPersonBirthday}}
</div>
</div>
</div>
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
heritageId: '',
heritageDetail: {},
heritagePeople: []
},
methods: {
getHeritageDetail: function () {
var self = this
doGetForm(self.requestUrl + 'library/app/intangiblelibrary/getintangiblelibrarybyidrelease/' + self.heritageId, {}, {}, function (code, data) {
data.libraryCover = data.libraryCover.split(',')
data.libraryApplyTime = data.libraryApplyTime.split(' ')[0]
self.heritageDetail = data
self.$nextTick(function () {
var swiper = new Swiper(".mySwiper", {
pagination: '.swiper-pagination',
paginationClickable: true,
autoplay: 3000
});
})
})
},
getHeritagePeople: function () {
var self= this
doGetForm(self.requestUrl + 'library/app/intangiblelibraryperson/listintangiblelibrarypersonrelease', {
intangibleLibraryId: self.heritageId
}, {}, function (code, data) {
self.heritagePeople = data
})
}
},
mounted: function () {
this.heritageId = window.location.search.replace('?','').split('=')[1]
this.getHeritageDetail()
this.getHeritagePeople()
}
})
</script>
</body>
</html>

143
culture.html Normal file
View File

@ -0,0 +1,143 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="heritage">
<div class="heritage-box" v-for="item in heritageList" @click="goDetail(item.intangibleLibraryId)">
<div class="heritage-box-left">
<img :src="requestUrl + 'library/route/file/downloadfile/true/' + item.libraryCover" alt="">
</div>
<div class="heritage-box-right">
<h3>{{item.libraryTitle}}</h3>
<p>{{item.libraryApplyTime}}</p>
<span>非遗级别:{{item.libraryLevel}}级</span>
<p>所属地区:{{item.libraryArea}}</p>
</div>
</div>
<div class="load-more" v-if="haveMore && heritageList && heritageList.length > 0" @click="loadMore">加载更多</div>
</div>
<div class="bottom-nav">
<div class="bottom-nav-box">
<div class="nav-icon" @click="goBottomNav('1')"></div>
<span>首页</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('2')">
<div class="nav-icon"></div>
<span>活动</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('3')">
<div class="nav-icon"></div>
<span>场馆</span>
</div>
<div class="bottom-nav-box active">
<div class="nav-icon"></div>
<span>文化</span>
</div>
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
page: {
page: 1,
rows: 10
},
heritageList: [],
haveMore: true,
isLoading: true
},
methods: {
getHeritageList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'library/app/intangiblelibrary/listpageintangiblelibraryrelease', self.page, {}, function (code, data) {
if (self.page.page == 1) {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].libraryApplyTime = data.rows[i].libraryApplyTime.split(' ')[0]
data.rows[i].libraryCover = data.rows[i].libraryCover.split(',')[0]
}
self.heritageList = data.rows
if (data.rows.length == self.page.rows) {
self.haveMore = true
self.isLoading = false
} else {
self.haveMore = false
self.isLoading = false
}
} else {
self.heritageList = []
self.haveMore = false
self.isLoading = false
}
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].libraryApplyTime = data.rows[i].libraryApplyTime.split(' ')[0]
data.rows[i].libraryCover = data.rows[i].libraryCover.split(',')[0]
}
self.heritageList.push(data.rows[i])
if (data.rows.length == self.page.rows) {
self.haveMore = true
self.isLoading = false
} else {
self.haveMore = false
self.isLoading = false
}
} else {
self.page.page--
self.haveMore = false
self.isLoading = false
layer.msg('暂无更多')
}
}
})
},
// 底部导航
goBottomNav: function (nav) {
if (nav == '2') {
window.location.href = 'activity.html'
} else if (nav == '1') {
window.location.href = 'index.html'
} else {
window.location.href = 'venue.html'
}
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getHeritageList()
}
},
goDetail: function (id) {
if (!this.isLoading) {
window.location.href = 'culture-detail.html?id=' + id
}
}
},
mounted: function () {
this.getHeritageList()
}
})
</script>
</body>
</html>

193
cultureType.html Normal file
View File

@ -0,0 +1,193 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="area">
<!-- <div class="area-box" v-for="type in typeList" :class="{active: curType == type.newsDirectoriesId}" @click="changeType(type.newsDirectoriesId)">{{type.directoriesName}}</div>-->
<div class="area-box" :class="{active: curType == 'b6f8e254-ad9e-47c0-8c16-f7a6085f4cef'}" @click="changeType('b6f8e254-ad9e-47c0-8c16-f7a6085f4cef')">地方剧场</div>
<div class="area-box" :class="{active: curType == 'ae52c58e-5286-43d9-bff4-2d0257764621'}" @click="changeType('ae52c58e-5286-43d9-bff4-2d0257764621')">敕勒歌</div>
<!-- <div class="area-box" :class="{active: curType == '8e7e8b5c-cee8-47ed-b5bc-0d41cab29b97'}" @click="changeType('8e7e8b5c-cee8-47ed-b5bc-0d41cab29b97')">全民阅读</div>-->
<div class="area-box" :class="{active: curType == '93bfb037-12f8-48c3-b4e9-8db10d3f3c1f'}" @click="changeType('93bfb037-12f8-48c3-b4e9-8db10d3f3c1f')">群众文化</div>
<div class="area-box" :class="{active: curType == 'd3da3e1a-b15d-43ba-82a2-357469021c80'}" @click="changeType('d3da3e1a-b15d-43ba-82a2-357469021c80')">寻根</div>
<div class="area-box" :class="{active: curType == '74d455b3-02fe-429e-9f28-42dc97641027'}" @click="changeType('74d455b3-02fe-429e-9f28-42dc97641027')">北疆画韵</div>
<div class="area-box" :class="{active: curType == 'e67e95f7-4a9b-4d58-8d1b-0cb29299514c'}" @click="changeType('e67e95f7-4a9b-4d58-8d1b-0cb29299514c')">遗韵</div>
<div class="area-box" :class="{active: curType == 'e3e42fb8-50e2-43c8-9d1f-c3df0ff7c862'}" @click="changeType('e3e42fb8-50e2-43c8-9d1f-c3df0ff7c862')">乡村乡俗</div>
<div class="area-box" :class="{active: curType == '4d097a9f-7507-4499-a707-3fbff788414f'}" @click="changeType('4d097a9f-7507-4499-a707-3fbff788414f')">E行天下</div>
</div>
<!-- <div class="area news-area">-->
<!-- <div class="area-box" :class="{active: page.county == ''}" @click="loadAll">全部</div>-->
<!-- <div class="area-box" v-for="area in areaList" :class="{active: page.county == area.areaId}" @click="changeArea(area.areaId,area.areaLevel)">{{area.areaName}}</div>-->
<!-- </div>-->
<div class="news-list" :style="{'margin-top': toTop}" v-if="newsList && newsList.length > 0">
<div class="news-list-box" v-for="news in newsList" @click="goDetail(news.newsContentLink, news.templateRecordUrl, news.newsContentType, news.newsContentContent)">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + news.newsContentCoverList" alt="">
<div class="news-list-info">
<h3>{{news.newsContentTitle}}</h3>
<p>作者:{{news.newsContentAuthor}}</p>
</div>
</div>
<div class="load-more" v-if="haveMore && newsList && newsList.length > 0" @click="loadMore">加载更多</div>
</div>
<div class="no-data" v-else>
<img src="image/no-data.png" alt="">
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
areaList: [],
typeList: [],
newsList: [],
curType: 'b6f8e254-ad9e-47c0-8c16-f7a6085f4cef',
page: {
page: 1,
rows: 10,
newsDirectoriesId: 'b6f8e254-ad9e-47c0-8c16-f7a6085f4cef',
county: ''
},
requestUrl: 'http://219.159.20.131:8081/',
haveMore: true,
isLoading: false,
toTop: ''
},
methods: {
getAreaList: function () {
var self = this
doGetForm(self.requestUrl + 'usercenter/app/dataarea/listareabyparentidrelease/110889', {}, null, function (code, data) {
self.areaList = data
})
},
changeArea: function (id, lv) {
if (!this.isLoading) {
var level = parseInt(lv) + 1
level = 'area' + level
this.page.county = id
this.page[level] = id
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getTypeList: function () {
var self = this
doGetForm(self.requestUrl + 'news/app/newsdirectories/listnewsdirectoriesrelease', {
directoriesParentId: self.page.newsDirectoriesId
}, {}, function (code, data) {
self.typeList = data
self.curType = data[0].newsDirectoriesId
self.page.newsDirectoriesId = data[0].newsDirectoriesId
self.getNewsList()
})
},
changeType: function (type) {
if (!this.isLoading) {
this.curType = type
this.page.newsDirectoriesId = type
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getNewsList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'news/app/newscontent/listpagenewscontentrelease', self.page, {}, function (code, data) {
if (self.page.page == '1') {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.newsList = data.rows
if (data.rows.length > 0) {
self.haveMore = true
self.isLoading = false
} else {
self.haveMore = false
self.isLoading = false
}
return
} else {
self.newsList = []
self.haveMore = false
self.isLoading = false
}
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.haveMore = true
self.isLoading = false
} else {
self.page.page--
self.haveMore = false
self.isLoading = false
layer.msg('暂无更多')
}
}
})
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getNewsList()
}
},
loadAll: function () {
if (!this.isLoading) {
var self = this
this.page = {
page: 1,
rows: 10,
newsDirectoriesId: self.curType,
county: ''
}
this.haveMore = true
this.getNewsList()
}
},
// 新闻详情
goDetail: function (link, url, type, outlink) {
if (!this.isLoading) {
if (type === '6') {
window.open(outlink)
} else {
if (link) {
window.open(link)
} else {
window.location.href = this.requestUrl + url
}
}
}
},
},
mounted: function () {
// this.page.newsDirectoriesId = window.location.search.replace('?','').split('=')[1]
// this.getAreaList()
// this.getTypeList()
this.getNewsList()
this.toTop = $('.area').height() + 'px'
}
})
</script>
</body>
</html>

75
feedback-detail.html Normal file
View File

@ -0,0 +1,75 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak style="padding: 0;">
<div class="detail">
<!-- <div class="user-info">-->
<!-- <div class="user-avatar">-->
<!-- <img src="image/venueall.png" alt="">-->
<!-- </div>-->
<!-- <div class="user-name">-->
<!-- <p class="name">张三</p>-->
<!-- <p>{{feedbackDetail.gmtCreate}}</p>-->
<!-- </div>-->
<!-- </div>-->
<div class="detail-text">{{feedbackDetail.opinionContent}}</div>
<p>{{feedbackDetail.gmtCreate}}2022-01-01</p>
</div>
<div class="reply" v-if="replyContent">
<div class="reply-title">
<h3>问题解答</h3>
<span>回复时间:{{replyTime}}</span>
</div>
<div class="reply-content">
<p>{{replyContent}}</p>
</div>
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
token: sessionStorage.getItem('token'),
contentOpinionId: '',
feedbackDetail: {},
replyContent: '',
replyTime: ''
},
methods: {
getDetail: function () {
var self = this
doGetForm(self.requestUrl + 'news/app/contentopinion/get/' + self.contentOpinionId, {}, null, function (code, data) {
console.log(data)
self.feedbackDetail = data
}, null, function (res) {
res.setRequestHeader('token',self.token)
})
}
},
mounted: function () {
var arr = window.location.search.replace('?','').split('&')
this.contentOpinionId = arr[0].split('=')[1]
this.replyContent = arr[1].split('=')[1]
this.replyTime = decodeURI(arr[2].split('=')[1])
this.getDetail()
}
})
</script>
</body>
</html>

129
feedback-masses.html Normal file
View File

@ -0,0 +1,129 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak style="padding: 0;">
<a href="feedback-record.html?type=1" class="link-record">
<div class="record-title">反馈记录</div>
<img src="image/right-arrow.png" alt="">
</a>
<div class="feedback-main" style="padding: .2rem;">
<div class="feedback-title">您的问题或建议:</div>
<textarea placeholder="请输入个人意见反馈字数在200字以内" v-model="opinion.opinionContent"></textarea>
<!-- <div class="photo">-->
<!-- <div class="feedback-title">上传照片</div>-->
<!-- <div class="upload-photo-box" v-for="(photo,idx) in imgList">-->
<!-- <div class="img-box">-->
<!-- <img :src="requestUrl + 'news/route/file/downloadfile/true/' + photo" alt="">-->
<!-- </div>-->
<!-- <img src="image/delete.png" alt="" class="delete" @click="deleteImg(idx)">-->
<!-- </div>-->
<!-- <input type="file" id="upload-photo" @change="uploadPhoto()">-->
<!-- <label for="upload-photo" v-if="imgList.length < 9"><span>+</span></label>-->
<!-- </div>-->
<div class="contact">
<div class="feedback-title">您的联系方式:</div>
<input type="text" placeholder="请输入电话号码" v-model="opinion.opinionPhone">
<input type="text" placeholder="请输入电子邮箱" v-model="opinion.opinionEmail">
<div class="tip">留下您的联系方式,以使我们了解问题后及时反馈结果</div>
</div>
</div>
<div class="submit-feedback">
<div class="submit-feedback-btn" @click="submitFeedback">提交建议</div>
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
token: sessionStorage.getItem('token'),
imgList: [],
opinion: {
opinionContent: '',
opinionPhone: '',
opinionEmail: '',
opinionImage: ''
},
isLoading: false
},
methods: {
uploadPhoto: function (e) {
var file
var self = this
var url = self.requestUrl
this.isLoading = true
// self.isLoading = true
file = $('#upload-photo')[0].files[0]
url += 'news/app/file/uploadimage'
var formData = new FormData()
formData.append('image', file)
$.ajax({
url: url,
type: 'post',
data: formData,
contentType: false,
processData: false,
headers: {
token: self.token
},
success: function (data) {
self.imgList.push(data.data)
},
complete: function () {
self.isLoading = false
}
})
},
submitFeedback: function () {
var self = this
var photo = ''
if (this.imgList.length > 0) {
for (let i = 0; i < this.imgList.length;i++) {
if (i != this.imgList.length - 1) {
photo += this.imgList[i] + ','
} else {
photo += this.imgList[i]
}
}
this.opinion.opinionImage = photo
}
if (!this.isLoading) {
doPostJson(self.requestUrl + 'news/app/contentopinion/save/massesOpinionFeedback', self.opinion, {},function (code, data) {
console.log(data)
if (code == '200') {
layer.msg('提交成功')
}
}, null, function (res) {
res.setRequestHeader('token',self.token)
})
}
},
deleteImg: function (idx) {
this.imgList.splice(idx,1)
}
},
mounted: function () {
}
})
</script>
</body>
</html>

154
feedback-record.html Normal file
View File

@ -0,0 +1,154 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="feedback-type">
<div class="type-box" :class="{active: tab == '0'}" @click="changeTab('0')">未回复</div>
<div class="type-box" :class="{active: tab == '1'}" @click="changeTab('1')">已回复</div>
</div>
<div class="feedback-list">
<div class="feedback-box" v-for="item in feedbackList" @click="checkDetail(item.contentOpinionId, item.opinionReply, item.opinionReplyTime)">
<div class="feedback-avatar">
<img src="image/default.png" alt="" v-if="!item.opinionImage">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + item.opinionImage" alt="" v-else>
</div>
<div class="feedback-info">
<div class="feedback-text">{{item.opinionContent}}</div>
<div class="feedback-time">{{item.gmtCreate}}</div>
</div>
</div>
<div class="have-more" v-if="haveMore" @click="loadMore">加载更多</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
token: sessionStorage.getItem('token'),
tab: '0',
feedbackList: [],
page: {
page: 1,
rows: 10,
opinionReplyStatus: 0
},
haveMore: true,
isLoading:false,
pageType: ''
},
methods: {
changeTab: function (tab) {
if (!this.isLoading) {
if (this.tab != tab) {
this.tab = tab
this.page.page = 1
this.page.opinionReplyStatus = tab
if (this.pageType == '1') {
this.getFeedbackList()
} else {
this.getTravelFeedbackList()
}
}
}
},
getFeedbackList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'news/app/contentopinion/listpage/massesOpinionFeedback', self.page, null, function (code, data) {
for (let i = 0; i < data.rows.length; i++) {
if (data.rows[i].opinionImage) {
data.rows[i].opinionImage = data.rows[i].opinionImage.split(',')[0]
}
}
if (self.page.page == 1) {
self.feedbackList = data.rows
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
self.feedbackList.push(data.rows[i])
}
} else {
self.page.page--
layer.msg('暂无更多')
}
}
if (data.rows.length < self.page.rows) {
self.haveMore = false
}
self.isLoading = false
}, null, function (res) {
res.setRequestHeader('token',self.token)
})
},
getTravelFeedbackList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'news/app/contentopinion/listpage/travelOpinionFeedback', self.page, null, function (code, data) {
for (let i = 0; i < data.rows.length; i++) {
if (data.rows[i].opinionImage) {
data.rows[i].opinionImage = data.rows[i].opinionImage.split(',')[0]
}
}
if (self.page.page == 1) {
self.feedbackList = data.rows
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
self.feedbackList.push(data.rows[i])
}
} else {
self.page.page--
layer.msg('暂无更多')
}
}
if (data.rows.length < self.page.rows) {
self.haveMore = false
}
self.isLoading = false
}, null, function (res) {
res.setRequestHeader('token',self.token)
})
},
checkDetail: function (id,reply,time) {
if (!this.isLoading) {
window.location.href = 'feedback-detail.html?contentOpinionId=' + id + '&reply=' + reply + '&time=' + encodeURI(time)
}
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getFeedbackList()
}
}
},
mounted: function () {
this.pageType = window.location.search.replace('?','').split('=')[1]
if (this.pageType == '1') {
this.getFeedbackList()
} else {
this.getTravelFeedbackList()
}
}
})
</script>
</body>
</html>

128
feedback-travel.html Normal file
View File

@ -0,0 +1,128 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak style="padding: 0;">
<a href="feedback-record.html?type=2" class="link-record">
<div class="record-title">反馈记录</div>
<img src="image/right-arrow.png" alt="">
</a>
<div class="feedback-main" style="padding: .2rem;">
<div class="feedback-title">您的问题或建议:</div>
<textarea placeholder="请输入个人意见反馈字数在200字以内" v-model="opinion.opinionContent"></textarea>
<!-- <div class="photo">-->
<!-- <div class="feedback-title">上传照片</div>-->
<!-- <div class="upload-photo-box" v-for="(photo,idx) in imgList">-->
<!-- <div class="img-box">-->
<!-- <img :src="requestUrl + 'news/route/file/downloadfile/true/' + photo" alt="">-->
<!-- </div>-->
<!-- <img src="image/delete.png" alt="" class="delete" @click="deleteImg(idx)">-->
<!-- </div>-->
<!-- <input type="file" id="upload-photo" @change="uploadPhoto">-->
<!-- <label for="upload-photo" v-if="imgList.length < 9"><span>+</span></label>-->
<!-- </div>-->
<div class="contact">
<div class="feedback-title">您的联系方式:</div>
<input type="text" placeholder="请输入电话号码" v-model="opinion.opinionPhone">
<input type="text" placeholder="请输入电子邮箱" v-model="opinion.opinionEmail">
<div class="tip">留下您的联系方式,以使我们了解问题后及时反馈结果</div>
</div>
</div>
<div class="submit-feedback">
<div class="submit-feedback-btn" @click="submitFeedback">提交建议</div>
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
token: sessionStorage.getItem('token'),
imgList: [],
opinion: {
opinionContent: '',
opinionPhone: '',
opinionEmail: '',
opinionImage: ''
},
isLoading: false
},
methods: {
uploadPhoto: function (e) {
var file
var self = this
var url = self.requestUrl
this.isLoading = true
// self.isLoading = true
file = $('#upload-photo')[0].files[0]
url += 'news/app/file/uploadimage'
var formData = new FormData()
formData.append('image', file)
$.ajax({
url: url,
type: 'post',
data: formData,
contentType: false,
processData: false,
headers: {
token: self.token
},
success: function (data) {
self.imgList.push(data.data)
},
complete: function () {
self.isLoading = false
}
})
},
submitFeedback: function () {
var self = this
var photo = ''
if (this.imgList.length > 0) {
for (let i = 0; i < this.imgList.length;i++) {
if (i != this.imgList.length - 1) {
photo += this.imgList[i] + ','
} else {
photo += this.imgList[i]
}
}
this.opinion.opinionImage = photo
}
if (!this.isLoading) {
doPostJson(self.requestUrl + 'news/app/contentopinion/save/travelOpinionFeedback', self.opinion, {},function (code, data) {
if (code == '200') {
layer.msg('提交成功')
}
}, null, function (res) {
res.setRequestHeader('token',self.token)
})
}
},
deleteImg: function (idx) {
this.imgList.splice(idx,1)
}
},
mounted: function () {
}
})
</script>
</body>
</html>

BIN
image/activity-on.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
image/activity.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
image/address.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
image/culture-on.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
image/culture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
image/default.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
image/delete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B

BIN
image/feedback.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
image/hritage-icon1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
image/hritage-icon2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
image/hritage-icon3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

BIN
image/hritage-icon4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

BIN
image/hritage-icon5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
image/hritage-icon6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

BIN
image/hritage-icon7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

BIN
image/hritage-icon8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
image/index-on.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
image/index.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
image/loading.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
image/man.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

BIN
image/nav-icon1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
image/nav-icon2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
image/nav-icon3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
image/nav-icon4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
image/no-data.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
image/people.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
image/phone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
image/phone1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

BIN
image/phone2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

BIN
image/read.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
image/right-arrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
image/time.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
image/time1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

BIN
image/time2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

BIN
image/toilet-default.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
image/toilet.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
image/venue-detail-top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

BIN
image/venue-on.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
image/venue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
image/venueall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
image/woman.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

329
index.html Normal file
View File

@ -0,0 +1,329 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="swiper mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="item in slideList">
<a href="javascript: void(0);" @click="goDetail(item.newsContentLink, item.templateRecordUrl, item.newsContentType, item.newsContentContent)">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + item.newsContentCoverList" alt="">
</a>
</div>
<div class="swiper-pagination"></div>
</div>
</div>
<div class="nav">
<div class="nav-box" @click="goNavList('1')">
<img src="image/nav-icon1.png" alt="">
<p>综合类</p>
</div>
<div class="nav-box" @click="goNavList('2')">
<img src="image/nav-icon2.png" alt="">
<p>文化类</p>
</div>
<div class="nav-box" @click="goNavList('3')">
<img src="image/nav-icon3.png" alt="">
<p>旅游类</p>
</div>
<div class="nav-box" @click="goNavList('4')">
<img src="image/nav-icon4.png" alt="">
<p>体育类</p>
</div>
<!-- <div class="nav-box" v-for="nav in navList" @click="goNavList(nav.newsDirectoriesId)">-->
<!-- <img :src="requestUrl + 'news/route/file/downloadfile/true/' + nav.directoriesPhoto" alt="">-->
<!-- <p>{{nav.directoriesName}}</p>-->
<!-- </div>-->
</div>
<div class="toilet">
<a href="toilet-list.html">
<img src="image/toilet.png" alt="">
</a>
</div>
<div class="toilet">
<a href="https://m.5read.com/7844">
<img src="image/read.png" alt="">
</a>
</div>
<div class="venue">
<h3>精彩推荐</h3>
<div class="venue-container">
<div class="venue-box" v-for="venue in venueList" @click="goVenueDetail(venue.venuesInfoId)">
<img :src="requestUrl + 'venuebooking/route/file/downloadfile/true/' + venue.venuePanorama" alt="">
<div class="venue-info">
<h4>{{venue.venueName}}</h4>
<p class="phone">{{venue.venueTelephone}}</p>
<p class="time">{{venue.businessHours}}</p>
</div>
</div>
</div>
</div>
<div class="news venue">
<h3>政务信息</h3>
<div class="news-container" v-for="news in newsList" @click="goDetail(news.newsContentLink, news.templateRecordUrl, news.newsContentType, news.newsContentContent)">
<div class="news-box style1" v-if="news.typesettingCode == 'key_1'">
<h4>{{news.newsContentTitle}}</h4>
<div class="three-img">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + img.contentCoverId" alt="" v-for="(img,idx) in news.newsContentCoverList">
</div>
</div>
<div class="news-box style2 style3" v-if="news.typesettingCode == 'key_2'">
<div class="news-img">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + img.contentCoverId" alt="" v-for="(img,idx) in news.newsContentCoverList" v-if="idx == 0">
</div>
<div class="news-info">
<h4>{{news.newsContentTitle}}</h4>
<p>发布时间:{{news.newsContentPublishTime}}</p>
</div>
</div>
<div class="news-box style3" v-if="news.typesettingCode == 'key_3'">
<div class="news-info">
<h4>{{news.newsContentTitle}}</h4>
<p>发布时间:{{news.newsContentPublishTime}}</p>
</div>
<div class="news-img">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + img.contentCoverId" alt="" v-for="(img,idx) in news.newsContentCoverList" v-if="idx == 0">
</div>
</div>
<div class="news-box style4" v-if="news.typesettingCode == 'key_4'">
<h4>{{news.newsContentTitle}}</h4>
<div class="big-img-box">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + img.contentCoverId" alt="" v-for="(img,idx) in news.newsContentCoverList" v-if="idx == 0">
</div>
<p>发布时间:{{news.newsContentPublishTime}}</p>
</div>
<div class="news-box style4" v-if="news.typesettingCode == 'key_5'">
<h4>{{news.newsContentTitle}}</h4>
<p>发布时间:{{news.newsContentPublishTime}}</p>
</div>
<div class="news-box style4" v-if="news.typesettingCode == 'key_6'">
<h4>{{news.newsContentTitle}}</h4>
<div class="big-img-box">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + img.contentCoverId" alt="" v-for="(img,idx) in news.newsContentCoverList" v-if="idx == 0">
</div>
<p>发布时间:{{news.newsContentPublishTime}}</p>
</div>
<div class="news-box style4" v-if="news.typesettingCode == 'key_7'">
<h4>{{news.newsContentTitle}}</h4>
<div class="big-img-box">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + img.contentCoverId" alt="" v-for="(img,idx) in news.newsContentCoverList" v-if="idx == 0">
</div>
<p>发布时间:{{news.newsContentPublishTime}}</p>
</div>
</div>
</div>
<div class="bottom-text">
<p>数据来源:乌兰察布市文化旅游体育局</p>
<p>联系电话0474-8182809</p>
</div>
<div class="feedback" @click="showFeedback = true">
<a href="javascript:void(0);">
反馈
<!-- <img src="image/feedback.png" alt="">-->
</a>
</div>
<div class="feedback-type-outer" v-if="showFeedback" @click="showFeedback = false">
<div class="feedback-type-container">
<a href="feedback-masses.html" class="feedback-type-box">
<img src="image/feedback.png" alt="">
<p>群众反馈</p>
</a>
<a href="feedback-travel.html" class="feedback-type-box">
<img src="image/feedback.png" alt="">
<p>旅游反馈</p>
</a>
<!-- <a href="feedback-record.html" class="feedback-type-box">-->
<!-- <img src="image/feedback.png" alt="">-->
<!-- <p>群众反馈记录</p>-->
<!-- </a>-->
<!-- <a href="travel-record.html" class="feedback-type-box">-->
<!-- <img src="image/feedback.png" alt="">-->
<!-- <p>旅游反馈记录</p>-->
<!-- </a>-->
</div>
</div>
<!-- <div class="live venue">-->
<!-- <h3>直播专区</h3>-->
<!-- <div class="live-container">-->
<!-- <div class="live-box" v-for="live in liveList">-->
<!-- <div class="live-img">-->
<!-- <img :src="requestUrl + 'live/route/file/downloadfile/true/' + live.livePlanPhoto" alt="">-->
<!-- <span v-if="live.liveStatus == '0'">已结束</span>-->
<!-- <span v-if="live.liveStatus == '1'">未开始</span>-->
<!-- <span v-if="live.liveStatus == '2'">直播中</span>-->
<!-- </div>-->
<!-- <p>{{live.livePlanName}}</p>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="bottom-nav">
<div class="bottom-nav-box active">
<div class="nav-icon"></div>
<span>首页</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('2')">
<div class="nav-icon"></div>
<span>活动</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('3')">
<div class="nav-icon"></div>
<span>场馆</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('4')">
<div class="nav-icon"></div>
<span>文化</span>
</div>
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
slideList: [],
navList: [],
venueList: [],
newsList: [],
liveList: [],
showFeedback: false,
token: ''
},
methods: {
// banner
getSlideNews: function () {
var self= this
doGetForm(self.requestUrl + 'news/app/newscontent/listpagenewscontentrelease', {
newsDirectoriesId: 'eab0ca3c-d35d-4c02-9397-ace2bdd10fc1',
page: 1,
rows: 5
}, {}, function (code, data) {
var arr = data.rows
for (let i = 0; i < arr.length; i++) {
arr[i].newsContentCoverList = arr[i].newsContentCoverList[0].contentCoverId
}
self.slideList = arr
self.$nextTick(function () {
var swiper = new Swiper(".mySwiper", {
pagination: '.swiper-pagination',
paginationClickable: true,
autoplay: 3000
});
})
})
},
// 获取导航
getNav: function () {
var self = this
doGetForm(self.requestUrl + 'news/app/newsdirectories/listnewsdirectoriesrelease', {
directoriesParentId: '213f660a-1660-48da-b244-56de7cf5c27e'
}, {}, function (code, data) {
self.navList = data
})
},
// 获取场馆
getVenue: function () {
var self = this
doGetForm(self.requestUrl + 'venuebooking/app/venuesinfo/listpagevenuesinforelease', {
page: 1,
rows: 5
}, {}, function (code, data) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].venuePanorama = data.rows[i].venuePanorama.split(',')[0]
}
self.venueList = data.rows
})
},
// 获取政务信息
getNews: function () {
var self = this
doGetForm(self.requestUrl + 'news/app/newscontent/listpagenewscontentrelease', {
newsDirectoriesId: '1e494b7f-d0e4-4baa-acfe-57268247e0e4',
page: 1,
rows: 5
}, {}, function (code, data) {
self.newsList = data.rows
})
},
// 获取直播
getLive: function () {
var self = this
doGetForm(self.requestUrl + 'live/app/liveplan/listpageliveplanrelease', {
page: 1,
rows: 4
}, {}, function (code, data) {
self.liveList = data.rows
})
},
// 新闻详情
goDetail: function (link, url, type, outlink) {
if (type === '6') {
window.open(outlink)
} else {
if (link) {
window.open(link)
} else {
window.location.href = this.requestUrl + url
}
}
},
// 底部导航
goBottomNav: function (nav) {
if (nav == '2') {
window.location.href = 'activity.html'
} else if (nav == '3') {
window.location.href = 'venue.html'
} else {
window.location.href = 'culture.html'
}
},
// 场馆详情
goVenueDetail: function (id) {
window.location.href = 'venue-detail.html?id=' + id
},
// 导航详情
goNavList: function (id) {
// if (id == 'c131dd1d-83c6-46c0-b535-76dc089f2637') {
// window.location.href = 'culture.html'
// } else if (id == '1ab9fcab-4d7e-4305-9d57-abe71cfd539a') {
// window.location.href = 'venue.html'
// } else {
// window.location.href = 'newsList.html?newsDirectoriesId=' + id
// }
if (id == '1') {
window.location.href = 'comprehensive.html'
} else if (id == '2') {
window.location.href = 'cultureType.html'
} else if (id == '3') {
window.location.href = 'travel.html'
} else {
window.location.href = 'sport.html'
}
}
},
mounted: function () {
var token = window.location.search.replace('?','').split('=')[1]
// var token = 'cVJWWXQ1UWpQWTQ1TDZMbEVtTmxiMlJVNkdvTzUwSTNHYzZaK3VTZmF0RitvTkNabU1KNENtLzFrQmI4akFvUzl4SlRYMlhtV0ZoRHZrVC9iYjVWZVovWngzbHBBckFZN2FiUkZ6ZUF4ZHU1V2NtZ2pqL2RROWpmZmluc2pXY2xDMkN1M1pDOUZBOE9RZGJYVDdPSlJHMU5iNmFyaUJaNzUrajk3WjVYOGJFNnpKS21JTVpRTGd2eE5vMlZ3bUNDVUVyWGM1YWlLbUhJU1h1Q3h4M0thSW1yWm1Dbzc0TWtFRjRldTREeCtMWT0'
this.token = token
sessionStorage.setItem('token',token)
this.getSlideNews()
this.getNav()
this.getVenue()
this.getNews()
// this.getLive()
}
})
</script>
</body>
</html>

88
js/ajax.js Normal file
View File

@ -0,0 +1,88 @@
function ObjToForm(obj) {
var formStr;
for (var name in obj) {
if (formStr == undefined || formStr == null) {
formStr = name + '=' + obj[name];
} else {
formStr += '&' + name + '=' + obj[name];
}
}
return formStr;
}
/**
* 发起get请求普通form表单格式
* @param url 地址
* @param dataObj 请求对象
* @param successCallback 请求成功回调
* @param errorCallback 请求失败回调
* @param beforeSendCallback 发送前执行
* @param completeCallback 发送后执行
*/
function doGetForm(url, dataObj, args, successCallback, errorCallback, beforeCallback, completeCallback) {
dataObj.tm = new Date().getTime();
$.ajax({
url: url,
type: 'GET',
contentType: "application/json;charset=utf-8",
data: (dataObj == undefined || dataObj == null) ? {} : ObjToForm(dataObj),
success: function(data, status, XMLHttpRequest) {
var responseCode = XMLHttpRequest.status;
successCallback(responseCode, data, args);
},
error: function(XMLHttpRequest) {
var responseCode = XMLHttpRequest.status;
if (errorCallback != undefined && errorCallback != null && typeof(errorCallback) == 'function') {
errorCallback(responseCode);
}
},
beforeSend: function(XMLHttpRequest) {
if (beforeCallback != undefined && beforeCallback != null && typeof(beforeCallback) == 'function') {
beforeCallback(XMLHttpRequest);
}
},
complete: function(XMLHttpRequest, status) {
if (completeCallback != undefined && completeCallback != null && typeof(completeCallback) == 'function') {
completeCallback(XMLHttpRequest, status);
}
}
});
};
/**
* 发起post请求
* @param url 请求地址
* @param dataObj 请求对象
* @param successCallback 请求成功回调
* @param errorCallback 请求失败回调
* @param beforeSendCallback 发送前执行
* @param completeCallback 发送后执行
*/
function doPostJson(url, dataObj, args, successCallback, errorCallback, beforeCallback, completeCallback, isJson) {
$.ajax({
url: url,
type: 'POST',
contentType: "application/json;charset=utf-8",
data: (dataObj == undefined || dataObj == null) ? {} : JSON.stringify(dataObj),
success: function(data, status, XMLHttpRequest) {
var responseCode = XMLHttpRequest.status;
successCallback(responseCode, data, args);
},
error: function(XMLHttpRequest) {
var responseCode = XMLHttpRequest.status;
if (errorCallback != undefined && errorCallback != null && typeof(errorCallback) == 'function') {
errorCallback(responseCode);
}
},
beforeSend: function(XMLHttpRequest) {
if (beforeCallback != undefined && beforeCallback != null && typeof(beforeCallback) == 'function') {
beforeCallback(XMLHttpRequest);
}
},
complete: function(XMLHttpRequest, status) {
if (completeCallback != undefined && completeCallback != null && typeof(completeCallback) == 'function') {
completeCallback(XMLHttpRequest, status);
}
}
});
};

3
js/jquery-2.1.4.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
js/layer/layer.js Normal file

File diff suppressed because one or more lines are too long

2
js/layer/mobile/layer.js Normal file
View File

@ -0,0 +1,2 @@
/*! layer mobile-v2.0.0 Web弹层组件 MIT License http://layer.layui.com/mobile By 贤心 */
;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?'<h3 style="'+(e?n.title[1]:"")+'">'+(e?n.title[0]:n.title)+"</h3>":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type="1">'+n.btn[0]+"</span>",2===t&&(e='<span no type="0">'+n.btn[1]+"</span>"+e),'<div class="layui-m-layerbtn">'+e+"</div>"):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(n.content||"")+"</p>"),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"<div "+("string"==typeof n.shade?'style="'+n.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(n.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(n.skin?"layui-m-layer-"+n.skin+" ":"")+(n.className?n.className:"")+" "+(n.anim?"layui-m-anim-"+n.anim:"")+'" '+(n.style?'style="'+n.style+'"':"")+">"+l+'<div class="layui-m-layercont">'+n.content+"</div>"+c+"</div></div></div>",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i]("layui-m-layershade")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:"2.0",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a("#"+o[0]+e)[0];n&&(n.innerHTML="",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],"function"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf("/")+1);n.getAttribute("merge")||document.head.appendChild(function(){var e=t.createElement("link");return e.href=a+"need/layer.css?2.0",e.type="text/css",e.rel="styleSheet",e.id="layermcss",e}())}()}(window);

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

12
js/rem.js Normal file
View File

@ -0,0 +1,12 @@
function setPage() {
var html = document.getElementsByTagName('html')[0];
var deviceWidth = document.documentElement.clientWidth;
var scale = deviceWidth / 750;//psd图上的宽度
html.style.fontSize = scale * 100 + 'px';
}
setPage();
window.onresize = function () {
setPage();
}

19
js/swiper.js Normal file

File diff suppressed because one or more lines are too long

10947
js/vue.js Normal file

File diff suppressed because it is too large Load Diff

181
newsList.html Normal file
View File

@ -0,0 +1,181 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="area">
<div class="area-box" v-for="type in typeList" :class="{active: curType == type.newsDirectoriesId}" @click="changeType(type.newsDirectoriesId)">{{type.directoriesName}}</div>
</div>
<div class="area news-area">
<div class="area-box" :class="{active: page.county == ''}" @click="loadAll">全部</div>
<div class="area-box" v-for="area in areaList" :class="{active: page.county == area.areaId}" @click="changeArea(area.areaId,area.areaLevel)">{{area.areaName}}</div>
</div>
<div class="news-list" v-if="newsList && newsList.length > 0">
<div class="news-list-box" v-for="news in newsList" @click="goDetail(news.newsContentLink, news.templateRecordUrl, news.newsContentType, news.newsContentContent)">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + news.newsContentCoverList" alt="">
<div class="news-list-info">
<h3>{{news.newsContentTitle}}</h3>
<p>作者:{{news.newsContentAuthor}}</p>
</div>
</div>
<div class="load-more" v-if="haveMore && newsList && newsList.length > 0" @click="loadMore">加载更多</div>
</div>
<div class="no-data" v-else>
<img src="image/no-data.png" alt="">
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
areaList: [],
typeList: [],
newsList: [],
curType: '',
page: {
page: 1,
rows: 10,
newsDirectoriesId: '',
county: ''
},
requestUrl: 'http://219.159.20.131:8081/',
haveMore: true,
isLoading: true
},
methods: {
getAreaList: function () {
var self = this
doGetForm(self.requestUrl + 'usercenter/app/dataarea/listareabyparentidrelease/110889', {}, null, function (code, data) {
self.areaList = data
})
},
changeArea: function (id, lv) {
if (!this.isLoading) {
var level = parseInt(lv) + 1
level = 'area' + level
this.page.county = id
this.page[level] = id
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getTypeList: function () {
var self = this
doGetForm(self.requestUrl + 'news/app/newsdirectories/listnewsdirectoriesrelease', {
directoriesParentId: self.page.newsDirectoriesId
}, {}, function (code, data) {
self.typeList = data
self.curType = data[0].newsDirectoriesId
self.page.newsDirectoriesId = data[0].newsDirectoriesId
self.getNewsList()
})
},
changeType: function (type) {
if (!this.isLoading) {
this.curType = type
this.page.newsDirectoriesId = type
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getNewsList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'news/app/newscontent/listpagenewscontentrelease', self.page, {}, function (code, data) {
if (self.page.page == '1') {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.newsList = data.rows
if (data.rows.length > 0) {
self.haveMore = true
self.isLoading = false
} else {
self.haveMore = false
self.isLoading = false
}
return
} else {
self.newsList = []
self.haveMore = false
self.isLoading = false
}
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.haveMore = true
self.isLoading = false
} else {
self.page.page--
self.haveMore = false
self.isLoading = false
layer.msg('暂无更多')
}
}
})
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getNewsList()
}
},
loadAll: function () {
if (!this.isLoading) {
var self = this
this.page = {
page: 1,
rows: 10,
newsDirectoriesId: self.curType,
county: ''
}
this.haveMore = true
this.getNewsList()
}
},
// 新闻详情
goDetail: function (link, url, type, outlink) {
if (!this.isLoading) {
if (type === '6') {
window.open(outlink)
} else {
if (link) {
window.open(link)
} else {
window.location.href = this.requestUrl + url
}
}
}
},
},
mounted: function () {
this.page.newsDirectoriesId = window.location.search.replace('?','').split('=')[1]
this.getAreaList()
this.getTypeList()
}
})
</script>
</body>
</html>

191
sport.html Normal file
View File

@ -0,0 +1,191 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="area">
<!-- <div class="area-box" v-for="type in typeList" :class="{active: curType == type.newsDirectoriesId}" @click="changeType(type.newsDirectoriesId)">{{type.directoriesName}}</div>-->
<div class="area-box" :class="{active: curType == '6b80b810-ab37-455a-ada7-a224b904c3ce'}" @click="changeType('6b80b810-ab37-455a-ada7-a224b904c3ce')">全民健身</div>
<div class="area-box" :class="{active: curType == 'eb7af95e-a4d7-46ed-a257-cb0e55d1b7e9'}" @click="changeType('eb7af95e-a4d7-46ed-a257-cb0e55d1b7e9')">良师推介</div>
<div class="area-box" :class="{active: curType == '4bacae47-2c96-4b4c-bd6d-d13a78364e9f'}" @click="changeType('4bacae47-2c96-4b4c-bd6d-d13a78364e9f')">精品赛事</div>
<div class="area-box" :class="{active: curType == '9b04c8d5-f1ea-46ce-9612-5af84c12ff0f'}" @click="changeType('9b04c8d5-f1ea-46ce-9612-5af84c12ff0f')">夺金榜</div>
<div class="area-box" :class="{active: curType == '013e7652-ddf3-4622-8884-27450dfeb8fb'}" @click="changeType('013e7652-ddf3-4622-8884-27450dfeb8fb')">少年强</div>
<div class="area-box" :class="{active: curType == '6402a8f9-bc33-4ee5-be38-197ac39471a3'}" @click="changeType('6402a8f9-bc33-4ee5-be38-197ac39471a3')">足球</div>
<!-- <div class="area-box" :class="{active: curType == 'f5e67561-d291-4f6d-bd31-b9fcb403598f'}" @click="changeType('f5e67561-d291-4f6d-bd31-b9fcb403598f')">场馆预订</div>-->
</div>
<!-- <div class="area news-area">-->
<!-- <div class="area-box" :class="{active: page.county == ''}" @click="loadAll">全部</div>-->
<!-- <div class="area-box" v-for="area in areaList" :class="{active: page.county == area.areaId}" @click="changeArea(area.areaId,area.areaLevel)">{{area.areaName}}</div>-->
<!-- </div>-->
<div class="news-list" :style="{'margin-top': toTop}" v-if="newsList && newsList.length > 0">
<div class="news-list-box" v-for="news in newsList" @click="goDetail(news.newsContentLink, news.templateRecordUrl, news.newsContentType, news.newsContentContent)">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + news.newsContentCoverList" alt="">
<div class="news-list-info">
<h3>{{news.newsContentTitle}}</h3>
<p>作者:{{news.newsContentAuthor}}</p>
</div>
</div>
<div class="load-more" v-if="haveMore && newsList && newsList.length > 0" @click="loadMore">加载更多</div>
</div>
<div class="no-data" v-else>
<img src="image/no-data.png" alt="">
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
areaList: [],
typeList: [],
newsList: [],
curType: '6b80b810-ab37-455a-ada7-a224b904c3ce',
page: {
page: 1,
rows: 10,
newsDirectoriesId: '6b80b810-ab37-455a-ada7-a224b904c3ce',
county: ''
},
requestUrl: 'http://219.159.20.131:8081/',
haveMore: true,
isLoading: false,
toTop: ''
},
methods: {
getAreaList: function () {
var self = this
doGetForm(self.requestUrl + 'usercenter/app/dataarea/listareabyparentidrelease/110889', {}, null, function (code, data) {
self.areaList = data
})
},
changeArea: function (id, lv) {
if (!this.isLoading) {
var level = parseInt(lv) + 1
level = 'area' + level
this.page.county = id
this.page[level] = id
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getTypeList: function () {
var self = this
doGetForm(self.requestUrl + 'news/app/newsdirectories/listnewsdirectoriesrelease', {
directoriesParentId: self.page.newsDirectoriesId
}, {}, function (code, data) {
self.typeList = data
self.curType = data[0].newsDirectoriesId
self.page.newsDirectoriesId = data[0].newsDirectoriesId
self.getNewsList()
})
},
changeType: function (type) {
if (!this.isLoading) {
this.curType = type
this.page.newsDirectoriesId = type
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getNewsList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'news/app/newscontent/listpagenewscontentrelease', self.page, {}, function (code, data) {
if (self.page.page == '1') {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.newsList = data.rows
if (data.rows.length > 0) {
self.haveMore = true
self.isLoading = false
} else {
self.haveMore = false
self.isLoading = false
}
return
} else {
self.newsList = []
self.haveMore = false
self.isLoading = false
}
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.haveMore = true
self.isLoading = false
} else {
self.page.page--
self.haveMore = false
self.isLoading = false
layer.msg('暂无更多')
}
}
})
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getNewsList()
}
},
loadAll: function () {
if (!this.isLoading) {
var self = this
this.page = {
page: 1,
rows: 10,
newsDirectoriesId: self.curType,
county: ''
}
this.haveMore = true
this.getNewsList()
}
},
// 新闻详情
goDetail: function (link, url, type, outlink) {
if (!this.isLoading) {
if (type === '6') {
window.open(outlink)
} else {
if (link) {
window.open(link)
} else {
window.location.href = this.requestUrl + url
}
}
}
},
},
mounted: function () {
// this.page.newsDirectoriesId = window.location.search.replace('?','').split('=')[1]
// this.getAreaList()
// this.getTypeList()
this.getNewsList()
this.toTop = $('.area').height() + 'px'
}
})
</script>
</body>
</html>

112
toilet-list.html Normal file
View File

@ -0,0 +1,112 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=aFhfSbQy2GVc92I4ue7i5w8WiQjouRYF&s=1"></script>
</head>
<body style="background: #f1f1f1">
<div id="app" v-cloak>
<div class="toilet-search">
<input type="text" v-model="page.search" @keyup.enter="doSearch" placeholder="请输入搜索内容">
</div>
<div class="toilet-container">
<a :href="'toilet.html?uid=' + toilet.uid" class="toilet-box" v-for="toilet in toiletList">
<div class="toilet-img">
<img :src="'http://www.wlcbsyzl.cn/systemetl/route/file/download/true/' + toilet.photo" alt="" v-if="toilet.photo">
<img src="image/toilet-default.png" alt="" v-else>
</div>
<div class="toilet-info">
<h3>{{toilet.name}}</h3>
<p>位置:{{toilet.address}}</p>
<p>距离:{{toilet.distance}}km</p>
</div>
</a>
<div class="load-more" v-if="haveMore" @click="loadMore">加载更多</div>
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
token: sessionStorage.getItem('token'),
toiletList: [],
page: {
page: 1,
rows: 15,
search:'',
lng: '',
lat: ''
},
isLoading: false,
haveMore: true
},
methods: {
getToiletList: function () {
var self = this
self.isLoading = true
doGetForm('http://www.wlcbsyzl.cn/systemetl/app/datacensus/sql/CS00001', self.page, null, function (code, data) {
if (data.length == 0) {
self.haveMore = false
self.page.page--
}
if (self.page.page == '1') {
self.toiletList = data
} else {
for (let i = 0; i < data.length; i++) {
self.toiletList.push(data[i])
}
}
self.isLoading = false
if (data.length < self.page.rows) {
self.haveMore = false
}
}, null, function (res) {
res.setRequestHeader('token',self.token)
})
},
loadMore: function () {
this.page.page++
this.getToiletList()
},
doSearch: function () {
this.page.page = 1
this.getToiletList()
},
getLocationInfo: function () {
var self = this
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
mk = new BMap.Marker(r.point);
self.page.lat = r.point.lat
self.page.lng = r.point.lng
self.getToiletList()
// getAddress(r.point);
}else {
alert('获取当前位置失败');
}
});
}
},
mounted: function () {
this.getLocationInfo()
}
})
</script>
</body>
</html>

61
toilet.html Normal file
View File

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=aFhfSbQy2GVc92I4ue7i5w8WiQjouRYF"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="toilet-top">
<h1 class="toilet-name">{{toiletDetail.name}}</h1>
<p class="toilet-address">{{toiletDetail.address}}</p>
</div>
<div id="map"></div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
toiletDetail: {},
token: sessionStorage.getItem('token'),
uid: ''
},
methods: {
getToiletDetail: function () {
var self = this
doGetForm('http://www.wlcbsyzl.cn/systemetl/app/datacensus/sql/CS00002', {
uid: self.uid
},null, function (code, data) {
console.log(data)
var result = data.dataList[0]
self.toiletDetail = result
var map = new BMapGL.Map("map");
var point = new BMapGL.Point(result.lng, result.lat);
var marker = new BMapGL.Marker(point); // 创建标注
map.enableScrollWheelZoom();
map.addOverlay(marker);
map.centerAndZoom(point, 12);
}, null, function (res) {
res.setRequestHeader('token',self.token)
})
}
},
mounted: function () {
this.uid = window.location.search.replace('?','').split('=')[1]
this.getToiletDetail()
}
})
</script>
</body>
</html>

114
travel-record.html Normal file
View File

@ -0,0 +1,114 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="feedback-type">
<div class="type-box" :class="{active: tab == '0'}" @click="changeTab('0')">未回复</div>
<div class="type-box" :class="{active: tab == '1'}" @click="changeTab('1')">已回复</div>
</div>
<div class="feedback-list">
<div class="feedback-box" v-for="item in feedbackList" @click="checkDetail(item.contentOpinionId, item.opinionReply, item.opinionReplyTime)">
<div class="feedback-avatar">
<img src="image/default.png" alt="" v-if="!item.opinionImage">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + item.opinionImage" alt="" v-else>
</div>
<div class="feedback-info">
<div class="feedback-text">{{item.opinionContent}}</div>
<div class="feedback-time">{{item.gmtCreate}}</div>
</div>
</div>
<div class="have-more" v-if="haveMore" @click="loadMore">加载更多</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
token: sessionStorage.getItem('token'),
tab: '0',
feedbackList: [],
page: {
page: 1,
rows: 10,
opinionReplyStatus: 0
},
haveMore: true,
isLoading:false
},
methods: {
changeTab: function (tab) {
if (!this.isLoading) {
if (this.tab != tab) {
this.tab = tab
this.page.page = 1
this.page.opinionReplyStatus = tab
this.getFeedbackList()
}
}
},
getFeedbackList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'news/app/contentopinion/listpage/travelOpinionFeedback', self.page, null, function (code, data) {
for (let i = 0; i < data.rows.length; i++) {
if (data.rows[i].opinionImage) {
data.rows[i].opinionImage = data.rows[i].opinionImage.split(',')[0]
}
}
if (self.page.page == 1) {
self.feedbackList = data.rows
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
self.feedbackList.push(data.rows[i])
}
} else {
self.page.page--
layer.msg('暂无更多')
}
}
if (data.rows.length < self.page.rows) {
self.haveMore = false
}
self.isLoading = false
}, null, function (res) {
res.setRequestHeader('token',self.token)
})
},
checkDetail: function (id,reply,time) {
if (!this.isLoading) {
window.location.href = 'feedback-detail.html?contentOpinionId=' + id + '&reply=' + reply + '&time=' + encodeURI(time)
}
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getFeedbackList()
}
}
},
mounted: function () {
this.getFeedbackList()
}
})
</script>
</body>
</html>

189
travel.html Normal file
View File

@ -0,0 +1,189 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="area">
<!-- <div class="area-box" v-for="type in typeList" :class="{active: curType == type.newsDirectoriesId}" @click="changeType(type.newsDirectoriesId)">{{type.directoriesName}}</div>-->
<div class="area-box" :class="{active: curType == 'b5d03555-52c8-4562-b162-1ed19da533bc'}" @click="changeType('b5d03555-52c8-4562-b162-1ed19da533bc')">热门景区</div>
<div class="area-box" :class="{active: curType == '3e0931bc-9e9e-4f10-ba47-b9f914958667'}" @click="changeType('3e0931bc-9e9e-4f10-ba47-b9f914958667')">归园田居</div>
<div class="area-box" :class="{active: curType == 'a62bbdf6-d95c-480a-80d4-effc4016b412'}" @click="changeType('a62bbdf6-d95c-480a-80d4-effc4016b412')">精品路线</div>
<div class="area-box" :class="{active: curType == '5f489c72-4f11-4b3a-a01c-05fde2900d21'}" @click="changeType('5f489c72-4f11-4b3a-a01c-05fde2900d21')">食客行</div>
<div class="area-box" :class="{active: curType == '10a06f60-a37f-48ee-a356-4d9b2d5a40b8'}" @click="changeType('10a06f60-a37f-48ee-a356-4d9b2d5a40b8')">旅行社</div>
</div>
<!-- <div class="area news-area">-->
<!-- <div class="area-box" :class="{active: page.county == ''}" @click="loadAll">全部</div>-->
<!-- <div class="area-box" v-for="area in areaList" :class="{active: page.county == area.areaId}" @click="changeArea(area.areaId,area.areaLevel)">{{area.areaName}}</div>-->
<!-- </div>-->
<div class="news-list" :style="{'margin-top': toTop}" v-if="newsList && newsList.length > 0">
<div class="news-list-box" v-for="news in newsList" @click="goDetail(news.newsContentLink, news.templateRecordUrl, news.newsContentType, news.newsContentContent)">
<img :src="requestUrl + 'news/route/file/downloadfile/true/' + news.newsContentCoverList" alt="">
<div class="news-list-info">
<h3>{{news.newsContentTitle}}</h3>
<p>作者:{{news.newsContentAuthor}}</p>
</div>
</div>
<div class="load-more" v-if="haveMore && newsList && newsList.length > 0" @click="loadMore">加载更多</div>
</div>
<div class="no-data" v-else>
<img src="image/no-data.png" alt="">
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
areaList: [],
typeList: [],
newsList: [],
curType: 'b5d03555-52c8-4562-b162-1ed19da533bc',
page: {
page: 1,
rows: 10,
newsDirectoriesId: 'b5d03555-52c8-4562-b162-1ed19da533bc',
county: ''
},
requestUrl: 'http://219.159.20.131:8081/',
haveMore: true,
isLoading: false,
toTop: ''
},
methods: {
getAreaList: function () {
var self = this
doGetForm(self.requestUrl + 'usercenter/app/dataarea/listareabyparentidrelease/110889', {}, null, function (code, data) {
self.areaList = data
})
},
changeArea: function (id, lv) {
if (!this.isLoading) {
var level = parseInt(lv) + 1
level = 'area' + level
this.page.county = id
this.page[level] = id
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getTypeList: function () {
var self = this
doGetForm(self.requestUrl + 'news/app/newsdirectories/listnewsdirectoriesrelease', {
directoriesParentId: self.page.newsDirectoriesId
}, {}, function (code, data) {
self.typeList = data
self.curType = data[0].newsDirectoriesId
self.page.newsDirectoriesId = data[0].newsDirectoriesId
self.getNewsList()
})
},
changeType: function (type) {
if (!this.isLoading) {
this.curType = type
this.page.newsDirectoriesId = type
this.page.page = 1
this.haveMore = true
this.getNewsList()
}
},
getNewsList: function () {
var self = this
self.isLoading = true
doGetForm(self.requestUrl + 'news/app/newscontent/listpagenewscontentrelease', self.page, {}, function (code, data) {
if (self.page.page == '1') {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.newsList = data.rows
if (data.rows.length > 0) {
self.haveMore = true
self.isLoading = false
} else {
self.haveMore = false
self.isLoading = false
}
return
} else {
self.newsList = []
self.haveMore = false
self.isLoading = false
}
} else {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].newsContentCoverList = data.rows[i].newsContentCoverList[0].contentCoverId
self.newsList.push(data.rows[i])
}
self.haveMore = true
self.isLoading = false
} else {
self.page.page--
self.haveMore = false
self.isLoading = false
layer.msg('暂无更多')
}
}
})
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getNewsList()
}
},
loadAll: function () {
if (!this.isLoading) {
var self = this
this.page = {
page: 1,
rows: 10,
newsDirectoriesId: self.curType,
county: ''
}
this.haveMore = true
this.getNewsList()
}
},
// 新闻详情
goDetail: function (link, url, type, outlink) {
if (!this.isLoading) {
if (type === '6') {
window.open(outlink)
} else {
if (link) {
window.open(link)
} else {
window.location.href = this.requestUrl + url
}
}
}
},
},
mounted: function () {
// this.page.newsDirectoriesId = window.location.search.replace('?','').split('=')[1]
// this.getAreaList()
// this.getTypeList()
this.getNewsList()
this.toTop = $('.area').height() + 'px'
}
})
</script>
</body>
</html>

85
venue-detail.html Normal file
View File

@ -0,0 +1,85 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<meta name="format-detection" content="telephone=yes"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/swiper.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body style="background: #fff">
<div id="app" v-cloak>
<div class="venue-detail-top">
<div class="venue-detail-left">
<h2>{{venueDetail.venueName}}</h2>
<p class="venue-time">营业时间:{{venueDetail.businessHours}}</p>
<p class="venue-phone"><a :href="'tel:' + venueDetail.venueTelephone">联系方式:{{venueDetail.venueTelephone}}</a></p>
</div>
<div class="venue-detail-right">
<div class="swiper mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="item in venueDetail.venuePanorama">
<img :src="requestUrl + 'venuebooking/route/file/downloadfile/true/' + item" alt="">
</div>
</div>
</div>
</div>
</div>
<div class="venue-detail-content">
<div class="position">
<p><span>场馆地址:</span>{{venueDetail.venuePosition}}</p>
<p><span>交通方式:</span>{{venueDetail.venueRoute}}</p>
</div>
<div class="venue-service">
<h3>场馆服务</h3>
<p>{{venueDetail.venueService}}</p>
</div>
<div class="venue-intro">
<h3>场馆服务</h3>
<div class="venue-intro-content" v-html="venueDetail.venueDescription"></div>
</div>
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/swiper.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
venueId: '',
venueDetail: {}
},
methods: {
getVenueDetail: function () {
var self = this
doGetForm(self.requestUrl + 'venuebooking/app/venuesinfo/getvenuesinfobyidrelease/' + self.venueId, {}, {}, function (code, data) {
data.venuePanorama = data.venuePanorama.split(',')
var src = 'img src="' + self.requestUrl + 'venuebooking/'
if(data.venueDescription.indexOf('src="') != -1){
data.venueDescription = data.venueDescription.replace(/src="/g, src)
}
self.venueDetail = data
self.$nextTick(function () {
var swiper = new Swiper(".mySwiper", {
pagination: '.swiper-pagination',
paginationClickable: true,
autoplay: 3000
});
})
})
}
},
mounted: function () {
this.venueId = window.location.search.replace('?','').split('=')[1]
this.getVenueDetail()
}
})
</script>
</body>
</html>

202
venue.html Normal file
View File

@ -0,0 +1,202 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/rem.js"></script>
</head>
<body>
<div id="app" v-cloak>
<div class="venue-type">
<div class="venue-type-box" @click="changeType('')">
<img src="image/venueall.png" alt="">
<p>全部</p>
</div>
<div class="venue-type-box" v-for="type in venueType" @click="changeType(type.dictionaryId)">
<img :src="requestUrl + 'venuebooking/route/file/downloadfile/true/' + type.dictionaryIcon" alt="">
<p>{{type.dictionaryName}}</p>
</div>
</div>
<div class="select">
<div class="select-box" :class="{active: page.orderKey == ''}" @click="orderCheck('')">默认排序</div>
<div class="select-box" :class="{active: page.orderKey == 'timeDesc'}" @click="orderCheck('timeDesc')">最新发布</div>
<div class="select-box" @click="showAreaSelect = true">{{selectedAreaName}}</div>
</div>
<div class="venue-outer">
<div class="box-venue" v-for="venue in venueList" @click="checkDetail(venue.venuesInfoId)">
<div class="box-venue-top">
<div class="box-venue-left">
<h3>{{venue.venueName}}</h3>
<p class="time">{{venue.businessHours}}</p>
<p>{{venue.venuePosition}}</p>
</div>
<div class="box-venue-right">
<img :src="requestUrl + 'venuebooking/route/file/downloadfile/true/' + venue.venuePanorama" alt="">
</div>
</div>
<div class="box-venue-bottom">
<p>{{venue.venueTelephone}}</p>
</div>
</div>
<div class="load-more" v-if="haveMore && venueList && venueList.length > 0" @click="loadMore">加载更多</div>
</div>
<div class="bottom-nav">
<div class="bottom-nav-box" @click="goBottomNav('1')">
<div class="nav-icon"></div>
<span>首页</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('2')">
<div class="nav-icon"></div>
<span>活动</span>
</div>
<div class="bottom-nav-box active">
<div class="nav-icon"></div>
<span>场馆</span>
</div>
<div class="bottom-nav-box" @click="goBottomNav('4')">
<div class="nav-icon"></div>
<span>文化</span>
</div>
</div>
<div class="select-area" v-if="showAreaSelect" @click="showAreaSelect = false">
<div class="select-area-container">
<div class="select-area-box" :class="{active: page.venueArea == ''}" @click.stop="changeArea('','')">全部</div>
<div class="select-area-box" v-for="area in areaList" :class="{active: page.venueArea == area.areaId}" @click.stop="changeArea(area.areaId, area.areaName)">{{area.areaName}}</div>
</div>
</div>
<div class="loading" v-if="isLoading">
<img src="image/loading.gif" alt="">
</div>
</div>
<script src="js/vue.js"></script>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/ajax.js"></script>
<script src="js/layer/layer.js"></script>
<script>
var vue = new Vue({
el: '#app',
data: {
requestUrl: 'http://219.159.20.131:8081/',
venueType: [],
page: {
page: 1,
rows: 10,
orderKey: '',
venueArea: '',
venueType: ''
},
venueList: [],
areaList: [],
showAreaSelect: false,
selectedAreaName: '选择区域',
haveMore: true,
isLoading: true
},
methods: {
getAreaList: function () {
var self = this
doGetForm(self.requestUrl + 'usercenter/app/dataarea/listareabyparentidrelease/110889', {}, null, function (code, data) {
self.areaList = data
})
},
changeArea: function (area, name) {
if (!this.isLoading) {
this.page.page = 1
this.page.venueArea = area
this.showAreaSelect = false
if (name) {
this.selectedAreaName = name
} else {
this.selectedAreaName = '选择区域'
}
this.getVenueList()
}
},
getVenueType: function () {
var self = this
doGetForm(self.requestUrl + 'venuebooking/app/venuedictionary/listvenuedictionarybyparentidrelease/df8b758c-f6d8-465a-9aa8-c451fde47076', {}, {} ,function (code, data) {
self.venueType = data.data
})
},
changeType: function (type) {
if (!this.isLoading) {
this.page.venueType = type
this.page.page = 1
this.getVenueList()
}
},
getVenueList: function () {
var self= this
self.isLoading = true
doGetForm(self.requestUrl + 'venuebooking/app/venuesinfo/listpagevenuesinforelease', self.page, {}, function (code, data) {
if (self.page.page == 1) {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].venuePanorama = data.rows[i].venuePanorama.split(',')[0]
}
self.venueList = data.rows
self.haveMore = true
} else {
layer.msg('暂无数据')
self.haveMore = false
self.venueList = []
}
self.isLoading = false
return
}
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
data.rows[i].venuePanorama = data.rows[i].venuePanorama.split(',')[0]
self.venueList.push(data.rows[i])
}
self.haveMore = true
} else {
layer.msg('暂无更多')
self.haveMore = false
self.page.page--
}
self.isLoading = false
})
},
orderCheck: function (order) {
if (!this.isLoading) {
this.page.orderKey = order
this.page.page = 1
this.getVenueList()
}
},
// 底部导航
goBottomNav: function (nav) {
if (nav == '2') {
window.location.href = 'activity.html'
} else if (nav == '1') {
window.location.href = 'index.html'
} else {
window.location.href = 'culture.html'
}
},
checkDetail: function (id) {
if (!this.isLoading) {
window.location.href = 'venue-detail.html?id=' + id
}
},
loadMore: function () {
if (!this.isLoading) {
this.page.page++
this.getVenueList()
}
},
},
mounted: function () {
this.getVenueType()
this.getVenueList()
this.getAreaList()
}
})
</script>
</body>
</html>