学员端小程序
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.
 
 
 

181 lines
4.1 KiB

<template>
<!-- 考场详情 -->
<view class="pageBg">
<view class="swiper-box" :style="{ backgroundImage: `url(${detailInfo.images})`, backgroundSize: '100% 100%' }">
<view class="navPoz">
<topNavbar title=" "></topNavbar>
</view>
<!-- <u-swiper :list="list1" :height="261"></u-swiper> -->
<view class="radian">
<image :src="radianImg" mode=""></image>
</view>
</view>
<view <view class="pad traTop">
<view class="card info">
<view class="cover">
<image :src="detailInfo.images" mode="widthFix"></image>
</view>
<view class="textCon">
<view class="name">{{detailInfo.name}}</view>
<view class="modeCar">准考车型{{detailInfo.carType}}</view>
</view>
<callPhone :servicePhone="[{name: detailInfo.phone}]">
<view class="pozPhone">
<image src="@/static/images/index/telephone.png" mode=""></image>
</view>
</callPhone>
</view>
<!-- 考场位置 -->
<view class="location">
<view class="h1">考场位置</view>
<view class="pozLi">
<pozCard :info="{address: detailInfo.address, lat:detailInfo.lat,lng: detailInfo.lng, distance: distance}"></pozCard>
</view>
</view>
<!-- 信息资讯 -->
<view class="news">
<view class="flex-b">
<view class="h1">信息资讯</view>
<moreRight text='查看全部' @click.native="$goPage('/pages/indexEntry/examines/allNews/allNews?id='+ id)"></moreRight>
</view>
<view class="card" v-for="(item,index) in infoList" :key="index" style="margin-bottom: 20rpx;">
<newItem :item="item"></newItem>
</view>
</view>
<view class="btn">我要模拟</view>
</view>
</view>
</template>
<script>
import newItem from '../comp/newItem'
import { imgUrl } from '@/config/site.config.js'
import { getExamSiteDatil, getExamSiteInfo } from '@/config/api.js'
export default {
components: { newItem },
data() {
return {
radianImg: imgUrl+'radian.png',
list1: [
'https://cdn.uviewui.com/uview/swiper/swiper1.png',
'https://cdn.uviewui.com/uview/swiper/swiper2.png',
'https://cdn.uviewui.com/uview/swiper/swiper3.png',
],
detailInfo: {},
infoList: [],
id: '',
params: {},
distance: ''
}
},
onLoad(options) {
this.id = options.id
let vuex_cityInfo = this.$store.state.user.vuex_cityInfo
if(!vuex_cityInfo.lat) {
this.$store.dispatch('getCity')
}else {
this.params.lat = vuex_cityInfo.lat
this.params.lng = vuex_cityInfo.lng
}
this.getExamSiteDatilFn()
this.getExamSiteInfoFn()
},
methods: {
async getExamSiteDatilFn() {
const {data: res} = await getExamSiteDatil( Object.assign({id: this.id, },this.params))
this.distance = res.distance
this.detailInfo = res.siteDO
},
async getExamSiteInfoFn() {
const {data: res} = await getExamSiteInfo({id: this.id,pageNo: 1,pageSize: 2, })
this.infoList = res.list
}
}
}
</script>
<style lang="scss" scoped>
.swiper-box {
position: relative;
height: 500rpx;
.navPoz {
position: absolute;
top: 0;
z-index: 9;
left: 0;
}
.radian {
position: absolute;
width: 100%;
height: 84rpx;
bottom: 0;
left: 0;
z-index: 9;
}
}
.h1 {
line-height: 96rpx;
}
.traTop {
position: relative;
top: -120rpx;
z-index: 99;
}
.info {
height: 208rpx;
align-items: center;
display: flex;
justify-content: space-between;
padding: 24rpx;
position: relative;
.cover {
width: 204rpx;
height: 140rpx;
border-radius: 8rpx;
overflow: hidden;
}
.textCon {
flex: 1;
padding: 0 0 0 36rpx;
.name {
font-size: 32rpx;
font-weight: 600;
margin-bottom: 20rpx;
}
.starBox {
padding: 10rpx 0 20rpx 0;
}
.modeCar {
font-size: 24rpx;
color: #686B73;
}
}
.pozPhone {
position: absolute;
top: 50%;
right: 40rpx;
width: 72rpx;
height: 72rpx;
transform: translateY(-50%);
}
}
.btn {
width: 396rpx;
height: 72rpx;
background: #1989FA;
border-radius: 8rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
line-height: 72rpx;
margin: 30rpx auto;
}
</style>