You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
4.8 KiB
227 lines
4.8 KiB
<template>
|
|
<view class="container">
|
|
<image class="cbg" :src="base.imgHost('common_bg.png')"></image>
|
|
<view class="book-top">
|
|
<text class="book-top-line"></text>
|
|
<image :src="base.imgHost('book-top.png')"></image>
|
|
</view>
|
|
<view class="book">
|
|
<view class="book-pic">
|
|
<block v-for="(item,index) in siteList">
|
|
<view class="book-pic-item" v-if="item.files.length>0">
|
|
<block>
|
|
<swiper circular indicator-dots
|
|
indicator-active-color="#b79373"
|
|
indicator-color="#fff"
|
|
style="height:350rpx" :autoplay="false" >
|
|
<swiper-item v-for="file in item.files">
|
|
<image :src="file.url" />
|
|
</swiper-item>
|
|
</swiper>
|
|
<view>
|
|
<view>{{item.name}}</view>
|
|
<!-- <view>
|
|
<text class="colortext">{{item['current_swiper']}}</text>
|
|
<text>/{{item.files.length}}</text>
|
|
</view> -->
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</block>
|
|
|
|
</view>
|
|
<view class="book-block">
|
|
<image @click="toUrl(1)" :src="base.imgHost('book-icon1.png')"></image>
|
|
<image @click="toUrl(2)" :src="base.imgHost('book-icon2.png')"></image>
|
|
</view>
|
|
|
|
</view>
|
|
<tabbar :currentPage="2"></tabbar>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import tabbar from '@/components/tabbar/tabbar.vue';
|
|
export default {
|
|
components: {
|
|
tabbar
|
|
},
|
|
data() {
|
|
return {
|
|
user: {},
|
|
can_appointment: false,
|
|
is_schoolmate: 0,
|
|
door_appointments: false, // 当前是否有预约
|
|
siteList:[]
|
|
}
|
|
},
|
|
onShareAppMessage() {
|
|
return this.base.shareInfo
|
|
},
|
|
onShareTimeline() {
|
|
return this.base.shareInfo
|
|
},
|
|
onShow() {
|
|
this.getUser()
|
|
},
|
|
onLoad() {
|
|
this.getSites()
|
|
},
|
|
methods: {
|
|
// 场地
|
|
getSites() {
|
|
this.$u.api.otherConfig().then(res => {
|
|
let _arr = res.appointment.filter(item=>item.status===1)
|
|
_arr.map(site=>{
|
|
site.current_swiper = 1
|
|
})
|
|
this.siteList = this.base.deepCopy(_arr)
|
|
})
|
|
},
|
|
// changeCurrent(e,item){
|
|
// console.log(e,item)
|
|
// if(e.detail.current+2>item.files.length){
|
|
// this.$set(item,'current_swiper',e.detail.current+2)
|
|
|
|
// }else{
|
|
// this.$set(item,'current_swiper',e.detail.current+2)
|
|
|
|
// }
|
|
// // item.current_swiper = e.detail.current+1
|
|
|
|
// // this.siteList[index]['current_swiper'] = e.detail.current + 1
|
|
// console.log("item.current_swiper",item.current_swiper)
|
|
// },
|
|
getUser() {
|
|
this.$u.api.user().then(res => {
|
|
console.log("res", res)
|
|
this.is_schoolmate = res.user.is_schoolmate
|
|
if (res.user.appointment_total - res.user.pass_appointments > 0) {
|
|
this.can_appointment = true
|
|
} else {
|
|
this.can_appointment = false
|
|
}
|
|
this.door_appointments = res.door_appointments ? true : false
|
|
this.$u.vuex('vuex_user', res.user)
|
|
})
|
|
},
|
|
toUrl(type) {
|
|
if (type === 1) {
|
|
if (!this.can_appointment) {
|
|
this.base.toast("您当前没有可预约次数")
|
|
return
|
|
}
|
|
if (this.door_appointments) {
|
|
this.base.toast("您当前已有预约")
|
|
return
|
|
}
|
|
uni.navigateTo({
|
|
url: '/packages/booksubmit/index'
|
|
})
|
|
|
|
} else if (type === 2) {
|
|
if (this.is_schoolmate) {
|
|
uni.navigateTo({
|
|
url: '/packages/schoolmate/index'
|
|
})
|
|
} else {
|
|
this.base.toast("您还不是校友,无权查看")
|
|
}
|
|
|
|
}
|
|
}
|
|
},
|
|
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.container {
|
|
width: 100%;
|
|
height: 100vh;
|
|
padding-bottom: 200rpx;
|
|
|
|
.cbg {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100vh;
|
|
}
|
|
|
|
.book-top {
|
|
position: relative;
|
|
padding: 80rpx 0 60rpx 0;
|
|
|
|
image {
|
|
width: 539rpx;
|
|
height: 88rpx;
|
|
display: block;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
text {
|
|
width: 1rpx;
|
|
height: 220rpx;
|
|
background-color: #271f8e;
|
|
display: block;
|
|
position: absolute;
|
|
top: 50rpx;
|
|
left: 60rpx;
|
|
z-index: 99;
|
|
}
|
|
}
|
|
|
|
.book {
|
|
position: relative;
|
|
padding: 0 30rpx;
|
|
height: calc(100vh - 400rpx);
|
|
overflow: scroll;
|
|
|
|
&-block {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
image {
|
|
width: 330rpx;
|
|
height: 126rpx;
|
|
}
|
|
}
|
|
|
|
&-pic {
|
|
&-item {
|
|
font-size: 0;
|
|
border-radius: 10rpx;
|
|
margin-bottom: 30rpx;
|
|
|
|
image {
|
|
width: 100%;
|
|
height: 350rpx;
|
|
}
|
|
|
|
&>view {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 20rpx 30rpx;
|
|
background-color: #fff;
|
|
font-size: 28rpx;
|
|
color: #000;
|
|
border-radius: 0 0 10rpx 10rpx;
|
|
|
|
text {
|
|
color: #666;
|
|
font-size: 24rpx;
|
|
}
|
|
|
|
.colortext {
|
|
color: #b79373;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
</style> |