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.
 
 
 
 

581 lines
12 KiB

<template>
<view>
<back :info="info"></back>
<view class="container">
<swiper-page :imgList="detailInfo.imgList&&detailInfo.imgList.length===0?$getimg('lx-jd.png'):detailInfo.imgList"></swiper-page>
<view class="info-container">
<view class="introduction">
<view class="content">
<view class="title-container">
<image :src="$getimg('icon-jdmp.png')" mode="widthFix"></image>
<view class="name">{{ detailInfo.name }}</view>
<view class="level" v-if="[1, 2, 3, 4, 5].includes(detailInfo.level)">
{{ detailInfo.level }}星</view>
</view>
<tags-list v-if="detailInfo.labels!=''" :list="detailInfo.labels" style="margin-top: 40rpx;">
</tags-list>
</view>
</view>
<view class="line"></view>
<view class="address-container">
<view>
<view class="address">{{ detailInfo.address || '' }}</view>
<view class="distance">距离您的位置{{detailInfo.distance}}</view>
</view>
<view class="address-img-container">
<view @click="goAddress(detailInfo.lagoff, detailInfo.lngoff)">
<image :src="$getimg('icon-map.png')" mode="widthFix"></image>
<view class="text">地图</view>
</view>
<!-- <view @click="handleClick(2)" v-if="detailInfo.telConsult!=''">
<image :src="$getimg('icon-iphone.png')" mode="widthFix"></image>
<view class="text">电话</view>
</view> -->
</view>
</view>
<!-- 基本信息 -->
<view class="slotContent" style="padding: 20rpx 30rpx;">
<view class="title">基本信息</view>
<jbxx-page @goMoreDetail="goMoreDetail" :detailInfo="detailInfo"></jbxx-page>
</view>
<pingjia :infoid="roomId" zytype="2" type="1"></pingjia>
<view class="slotContent" v-if="detailInfo.ctgList">
<view class="title">搜周边</view>
<view class="list_container">
<view class="card-menu" v-for="(item, index) in detailInfo.ctgList" :key="item.uid"
:style="{ borderTop: index == 0 ? '1rpx solid #eeeeee' : '' }">
<view class="img-container">
<u-image width="194rpx" height="194rpx" border-radius="10rpx"
:src="item.thumbImg==''?$getimg('noimg.png'):$geturl(item.thumbImg)"></u-image>
<view class="img-mask">
<image :src="$getimg('icon-juli.png')" mode="widthFix"></image>
<text>{{ item.distanceStr }}</text>
</view>
</view>
<view class="detail-container" >
<view class="title-container">
<view class="content">
<text class="title" style="margin-top: 0;">{{ item.name }}</text>
<view class="level" v-if="[1, 2, 3, 4, 5].includes(item.level)">{{ item.level }}A</view>
</view>
</view>
<view class="info-container">
<view class="info">
<view class="gradePrice">
<view class="lbradd">{{item.address}}</view>
</view>
<tags-list :list="item.scapeType"></tags-list>
<!-- <view class="price-container" v-if="item.ticketPrice!=''">
<text v-if="item.ticketPrice!=0">
<text class="symbol">¥</text>
<text class="price">{{item.ticketPrice}}</text>
<text class="qi">起</text>
</text>
</view> -->
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
httpPost
} from '@/components/utils/request';
import ydmpPage from './components/ydmp-page';
import jbxxPage from './components/jbxx-page';
import swiperPage from './components/swiper-page';
import listPage from './components/list-page';
import tagsList from './components/tags-list';
import pingjia from '@/components/utils/zixunpj.vue';
import back from '@/components/html/back.vue';
export default {
components: {
ydmpPage,
jbxxPage,
swiperPage,
listPage,
tagsList,
pingjia,
back
},
data() {
return {
info: {
color: true,num:false
},
url: {
detail: '/waresdetail.jspx',
},
detailInfo: {},
customStyle: {
width: '170rpx',
height: '64rpx',
lineHeight: '64rpx',
background: '#FF9445',
fontSize: '24rpx'
},
ticketsIndex: 0,
surround: [],
roomId: 0,
roomType: 0,
roomlength:1,
longitude: '',
latitude:''
};
},
onLoad(options) {
console.log(options)
this.roomId = options.uid;
this.roomType = options.type;
var that = this;
uni.getLocation({
type: 'wgs84',
success: function (res) {
that.longitude = res.longitude;
that.latitude = res.latitude;
that.getDetail(options.id,options.type);
}
});
},
methods: {
getRoom(e){
this.roomlength=e.length;
},
getDetail(id,type) {
httpPost(this, this.url.detail, {
id,
type: Number(type),
longitude: this.longitude,
latitude: this.latitude
}, res => {
let json = res.data.data;
this.detailInfo = json;
});
},
clickMore() {
uni.showToast({
title: '点击更多',
icon: 'none'
});
},
goAddress(latitude, longitude) {
console.log(latitude + ',' + longitude);
uni.openLocation({
latitude: Number(latitude),
longitude: Number(longitude)
});
},
// handleClick(type) {
// if (type == 1) {
// let url = '/pages/daohang?lat=' + this.detailInfo.latGd + '&lng=' + this.detailInfo.lngGd +
// '&name=' + this.detailInfo.name + '&address=' + this.detailInfo.address;
// uni.navigateTo({
// url: url
// })
// } else {
// let phone = this.detailInfo.telConsult;
// uni.makePhoneCall({
// phoneNumber: phone,
// success: (res) => {
// console.log('调用成功!')
// },
// });
// }
// },
handleTickets(item) {
this.ticketsIndex = item;
},
lookMore(name) {
let path = '';
if (name == '景区') path = '../scenic';
if (name == '酒店') path = '../hotel';
uni.navigateTo({
url: path
});
},
gotoDetail(name, id) {
let path = '';
if (name == '酒店') {
this.getDetail(id);
uni.pageScrollTo({
scrollTop: 0,
duration: 500
});
return
}
if (name == '景区') path = `../scenic-detail/scenic-detail?id=${id}`;
uni.navigateTo({
url: path
});
},
bookingTicket() {
uni.navigateTo({
url: '../booking-ticket/booking-ticket'
});
},
goMoreDetail(anchor) {
uni.navigateTo({
url: `../more-detail/more-detailjd?anchor=${anchor}&id=`+this.roomId
});
},
getListImg(imgs) {
if (!imgs) return this.$getImg('/ouhai_xcx/home/map.png');
return imgs.split(',')[0];
}
}
};
</script>
<style lang="scss">
.container {
width: 100%;
}
.info-container {
position: relative;
top: -50rpx;
.introduction {
// height: 200rpx;
background: #fff;
border-radius: 30rpx 30rpx 0rpx 0rpx;
padding: 47rpx 34rpx 5rpx 30rpx;
display: flex;
justify-content: space-between;
.content {
display: flex;
flex-direction: column;
.title-container {
display: flex;
align-items: center;
image {
width: 54rpx;
height: 40rpx;
}
.name {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
margin-left: 17rpx;
margin-right: 18rpx;
}
.level {
width: 60rpx;
height: 40rpx;
text-align: center;
background: #fff1eb;
border-radius: 4rpx;
font-size: 28rpx;
font-family: DIN;
font-weight: bold;
color: #ff540b;
}
}
}
}
.businessInformation {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30rpx 30rpx 30rpx;
font-size: 26rpx;
font-weight: 400;
font-family: PingFang SC;
.isBusiness {
font-weight: bold;
color: #04bb6d;
margin-right: 21rpx;
}
.businessTime {
flex: 1;
color: #333333;
}
.moreMore {
font-size: 22rpx;
color: #666666;
}
}
.line {
width: 690rpx;
height: 1rpx;
margin: auto;
background: #000000;
opacity: 0.1;
}
.address-container {
display: flex;
justify-content: space-between;
font-family: PingFang SC;
font-weight: 400;
padding: 30rpx;
font-size: 22rpx;
image {
width: 48rpx;
height: 48rpx;
}
.address {
font-size: 28rpx;
color: #333333;
margin-bottom: 19rpx;
}
.distance {
color: #999999;
}
.address-img-container {
width: 20%;
display: flex;
text-align: center;
justify-content: space-between;
.text {
color: #666666;
}
}
}
.slotContent {
padding: 30rpx;
.title {
margin-top: 25rpx;
font-size: 36rpx;
font-family: PingFang SC;
font-weight: 600;
color: #333333;
}
}
}
.card-menu {
// width: 750rpx;
height: 207rpx;
background: #ffffff;
padding: 25rpx;
margin-bottom: 20rpx;
display: flex;
.img-container {
position: relative;
color: #ffffff;
font-weight: 400;
font-family: Microsoft YaHei;
image {
width: 194rpx;
height:184rpx;
border-radius: 10rpx;
}
.img-mask {
position: absolute;
width: 180rpx;
height: 50rpx;
border-radius: 0rpx 0rpx 10rpx 10rpx;
bottom: 25rpx;
display: flex;
align-items: center;
padding-left: 20rpx;
background: linear-gradient(right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));
font-size: 24rpx;
image {
width: 30rpx;
height: 30rpx;
}
text {
margin-left: 9rpx;
}
}
}
.detail-container {
margin-left: 15rpx;
width: 100%;
display: flex;
flex-direction: column;
.for20Seconds {
background: #fff5f5;
border: 1rpx solid #ff948e;
border-radius: 4rpx;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 400;
color: #ff0c00;
text-align: center;
margin-left: 10rpx;
padding: 2rpx 9rpx 2rpx 10rpx;
}
.info-container {
display: flex;
justify-content: space-between;
margin-top: 67rpx;
.info {
display: flex;
flex-direction: column;
.gradePrice {
display: flex;
justify-content: space-between;
align-items: center;
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
.lbradd{
font-size: 24upx;
color: #666666;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&::before{
content: '';
display: inline-block;
width: 18upx;
height: 22upx;
background: url('https://cs.tour-ma.com/r/cms/www/m/changshu/ra-liebiao-icon-dizhi.png') no-repeat;
background-size: 100%;
margin-right: 12upx;
}
}
.content {
display: flex;
align-items: center;
.review,
.collection {
color: #666666;
text {
font-size: 25rpx;
font-family: DIN;
font-weight: 500;
color: #333333;
margin-right: 10rpx;
}
}
.divider {
width: 3rpx;
height: 17rpx;
background: #cccccc;
margin-left: 15rpx;
margin-right: 13rpx;
}
}
.price {
text-decoration: line-through;
color: #979797;
}
}
}
}
.tags-container {
margin-top: 16rpx;
}
.price-container {
line-height: 50rpx;
margin-top: 5rpx;
color: #ff540b;
font-size: 24rpx;
.symbol {
margin-right: 5rpx;
}
.price {
font-size: 42rpx;
}
.qi {
color: #666666;
font-size: 20rpx;
margin-left: 10rpx;
}
.price-name {
color: #66666670;
font-size: 22rpx;
font-weight: 400;
}
.oldPrice {
margin-left: 9rpx;
}
}
}
}
.title-container {
display: flex;
align-items: center;
image {
width: 54rpx;
height: 40rpx;
}
.name {
font-size: 48rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
margin-left: 17rpx;
margin-right: 18rpx;
}
.level {
width: 60rpx;
height: 40rpx;
text-align: center;
background: #fff1eb;
border-radius: 4rpx;
font-size: 28rpx;
font-family: DIN;
font-weight: bold;
color: #ff540b;
margin-left: 10rpx;
}
.content {
display: flex;
align-items: center;
.title {
color: #2a2a2a;
font-weight: bold;
font-size: 36rpx;
font-family: PingFang SC;
}
}
}
</style>