600 lines
14 KiB
Vue
600 lines
14 KiB
Vue
<template>
|
||
<view class="index">
|
||
<!-- <navbar :Background='Background' :navtitle='navtitle' :navMethodcan='1' :navboxshow="navboxshow"
|
||
@fatherMethod='fatherMethod'>
|
||
</navbar> -->
|
||
<image class="index_top_imge" :src="list.store.background" mode="aspectFill"></image>
|
||
<view class="index_box">
|
||
<view class="oneindex_box">
|
||
<view class="oneindex_box_image">
|
||
<image :src="list.store.avatar" mode="aspectFill"></image>
|
||
</view>
|
||
<view class="oneindex_box_text flex-start">
|
||
<view class="oneindex_box_text_one">
|
||
{{list.store.title}}
|
||
</view>
|
||
<view class="oneindex_box_text_tow flex-start">
|
||
<u-rate :count="count" v-model="list.store.score" readonly active-color="#f1cb66"
|
||
inactive-color="#F1CB66"></u-rate>
|
||
<text class="oneindex_box_text_towtext">{{list.store.score}}.0</text>
|
||
</view>
|
||
</view>
|
||
<view class="towindex_box_text flex-between">
|
||
<view class="towindex_box_text_one">
|
||
营业时间:{{list.store.b_hours}}
|
||
</view>
|
||
<view class="towindex_box_text_tow flex-start" @click="mobilemobile(list.store.mobile)">
|
||
<u-icon name="phone-fill" color="#2ca248" size="20"></u-icon>
|
||
<text>联系商家</text>
|
||
</view>
|
||
</view>
|
||
<view class="towindex_box_dw flex-start" @click="openmap">
|
||
<image src="@/static/positioning.png" mode="aspectFill"></image>
|
||
<text style="margin-left: 12rpx;">{{list.store.address}}</text>
|
||
</view>
|
||
<view class="towindex_box_bouttn flex-start">
|
||
<text v-for="(item,index) in list.store.label" :key="index">{{item}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="towindextow" @click="toworder()" v-if="list.is_balance_vip == 0">
|
||
<image :src="list.vip_img" mode="aspectFill"></image>
|
||
</view>
|
||
<view class="thereindexone flex-between">
|
||
<view class="thereindexone_item flex-colum" v-for="(item,indexs) in list.store_type" :key="indexs"
|
||
@click="clickthereindexone(item.id)">
|
||
<image :src="item.img" mode="aspectFill"></image>
|
||
<text>{{item.name}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="fourindexone">
|
||
<view class="fourindexone_one flex-center">
|
||
<text class="fourindexone_one_o"></text>
|
||
<text class="fourindexone_one-text">预约服务</text>
|
||
<text class="fourindexone_one_T"></text>
|
||
</view>
|
||
<view class="fourindexone_box flex-colum" v-for="(item,index) in list.store_service" :key="index"
|
||
@click="eeInfo(item)">
|
||
<view class="fourindexone_item flex-start">
|
||
<image class="fourindexone_itemimage" :src="item.img" mode="aspectFill"></image>
|
||
<view class="fourindexone_itemview flex-colum-start">
|
||
<view class="fourindexone_itemview_one">
|
||
{{item.title}}
|
||
</view>
|
||
<view class="fourindexone_itemview_tow">
|
||
{{item.describe}}
|
||
</view>
|
||
<view class="fourindexone_itemview_there flex-start">
|
||
<view class="fourindexone_itemview_there_text">
|
||
<text>¥</text>{{item.price}}
|
||
</view>
|
||
<view class="fourindexone_itemview_there_text_x">
|
||
¥{{item.y_price}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="fourindexone_item_there">
|
||
立即预约
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="fiveindexone">
|
||
<view class="fiveindexonehtml" v-html="list.describe">
|
||
</view>
|
||
<view class="sixindex" @click="clickthereindexone(0)">
|
||
立马预约服务
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<bottombbar :valuebbar='1'></bottombbar>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import navbar from '@/components/navbar.vue'
|
||
import bottombbar from '@/components/bottombbar.vue'
|
||
export default {
|
||
components: {
|
||
navbar,
|
||
bottombbar
|
||
},
|
||
data() {
|
||
return {
|
||
navtitle: '', //名称
|
||
navboxshow: '3', //显示
|
||
Background: '#fff',
|
||
count: 5,
|
||
value: 2,
|
||
list: {}
|
||
}
|
||
},
|
||
async onLoad(e) {
|
||
if (e) {
|
||
uni.cache.set('store_id', e.scene) // 判断显示哪家的作品
|
||
}
|
||
await this.$onLaunched
|
||
// uni.reLaunch({
|
||
// url: '/pages/index/components/hairdressing'
|
||
// })
|
||
this.indexappclassindex()
|
||
},
|
||
methods: {
|
||
async userlogin() { //登录
|
||
let res = await this.api.userlogin({
|
||
code: uni.cache.get('weixincode'),
|
||
// #ifdef H5
|
||
code: '0c3KOzFa1lkuMF0enAHa1Eu2xG1KOzFJ'
|
||
// #endif
|
||
})
|
||
try {
|
||
if (res) {
|
||
uni.cache.set('loginuser', res);
|
||
this.positionindex()
|
||
} else {
|
||
uni.cache.set('loginuser', 0);
|
||
}
|
||
} catch (e) {
|
||
//TODO handle the exception
|
||
}
|
||
},
|
||
fatherMethod() {
|
||
uni.cache.set('details_id', '')
|
||
uni.cache.set('store_id', '')
|
||
uni.reLaunch({
|
||
url: '/pages/index/index'
|
||
});
|
||
},
|
||
async toworder() { //会员卡
|
||
let res = await this.api.userreceivebalancecar({
|
||
store_id: uni.cache.get('store_id') // 判断显示哪家的作品
|
||
})
|
||
uni.showToast({
|
||
title: '领取成功',
|
||
icon: 'none'
|
||
});
|
||
setTimeout(() => {
|
||
uni.pro.navigateTo('my/member/index')
|
||
}, 1500);
|
||
},
|
||
openmap() { //打开地图
|
||
uni.openLocation({
|
||
latitude: Number(this.list.store.lat),
|
||
longitude: Number(this.list.store.lng),
|
||
name: this.list.store.title,
|
||
address: this.list.store.address,
|
||
success: (res) => {
|
||
console.log('success');
|
||
},
|
||
fail: (res) => {
|
||
console.log(res)
|
||
}
|
||
})
|
||
},
|
||
eeInfo(e) { //查看订单详情
|
||
uni.pro.navigateTo('order/orderInfo', {
|
||
id: e.id,
|
||
})
|
||
},
|
||
clickthereindexone(e) {
|
||
uni.pro.navigateTo('order/index', {
|
||
id: e
|
||
})
|
||
},
|
||
mobilemobile(e) { //打电话
|
||
uni.makePhoneCall({
|
||
phoneNumber: e //仅为示例
|
||
});
|
||
},
|
||
async indexappclassindex() { //店铺详情
|
||
let res = await this.api.indexappclassindex({
|
||
store_id: uni.cache.get('store_id')
|
||
})
|
||
try {
|
||
if (res) {
|
||
console.log(res)
|
||
this.list = res
|
||
uni.cache.set('store_id', res.store.id) // 返回的id
|
||
if (uni.cache.get('store_id')) {
|
||
this.$store.dispatch("actionsclassification");
|
||
}
|
||
uni.setNavigationBarTitle({
|
||
title: res.store.title
|
||
});
|
||
this.list.describe = res.describe.replace(/\<img/g,
|
||
'<img style="max-width:100%;height:auto" ');
|
||
}
|
||
} catch (e) {
|
||
//TODO handle the exception
|
||
}
|
||
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
page {
|
||
background: #FFFFFF;
|
||
}
|
||
|
||
|
||
.index {
|
||
.index_top_imge {
|
||
width: 100%;
|
||
height: 448rpx;
|
||
z-index: 98;
|
||
}
|
||
|
||
.index_box {
|
||
position: relative;
|
||
z-index: 99;
|
||
background: #FFFFFF;
|
||
border-radius: 26rpx 26rpx 0px 0px;
|
||
|
||
.oneindex_box {
|
||
position: relative;
|
||
width: 100%;
|
||
padding: 44rpx 28rpx;
|
||
|
||
.oneindex_box_image {
|
||
position: absolute;
|
||
left: 28rpx;
|
||
top: -28rpx;
|
||
width: 108rpx;
|
||
height: 108rpx;
|
||
|
||
image {
|
||
border-radius: 20rpx;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
|
||
.oneindex_box_text {
|
||
margin-left: 140rpx;
|
||
|
||
.oneindex_box_text_one {
|
||
font-size: 32rpx;
|
||
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||
font-weight: 500;
|
||
color: #333333;
|
||
}
|
||
|
||
.oneindex_box_text_tow {
|
||
.oneindex_box_text_towtext {
|
||
font-size: 24rpx;
|
||
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||
font-weight: 500;
|
||
color: #F1CB66;
|
||
}
|
||
}
|
||
}
|
||
|
||
.towindex_box_text {
|
||
margin-top: 32rpx;
|
||
|
||
.towindex_box_text_one {
|
||
font-size: 28rpx;
|
||
font-family: SourceHanSansCN-Regular-, SourceHanSansCN-Regular;
|
||
font-weight: normal;
|
||
color: #333333;
|
||
}
|
||
|
||
.towindex_box_text_tow {
|
||
|
||
font-size: 28rpx;
|
||
font-family: SourceHanSansCN-Regular-, SourceHanSansCN-Regular;
|
||
font-weight: normal;
|
||
color: #333333;
|
||
}
|
||
}
|
||
|
||
.towindex_box_dw {
|
||
image {
|
||
width: 25.37rpx;
|
||
height: 33.02rpx;
|
||
}
|
||
|
||
margin-top: 24rpx;
|
||
font-size: 28rpx;
|
||
font-family: Source Han Sans CN-Regular,
|
||
Source Han Sans CN;
|
||
font-weight: 400;
|
||
color: #666666;
|
||
}
|
||
|
||
.towindex_box_bouttn {
|
||
margin-top: 32rpx;
|
||
|
||
text:nth-child(1) {
|
||
margin-left: 0 !important;
|
||
}
|
||
|
||
text {
|
||
margin-left: 16rpx;
|
||
padding: 8rpx 14rpx;
|
||
background: #F7F7F7;
|
||
border-radius: 8rpx;
|
||
font-size: 24rpx;
|
||
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
||
font-weight: 400;
|
||
color: #999999;
|
||
}
|
||
}
|
||
}
|
||
|
||
.towindextow {
|
||
padding: 32rpx;
|
||
border-top: 16rpx solid #F7F7F7;
|
||
border-bottom: 16rpx solid #F7F7F7;
|
||
background: #FFFFFF;
|
||
|
||
image {
|
||
width: 100%;
|
||
height: 150rpx;
|
||
}
|
||
}
|
||
|
||
.thereindexone {
|
||
padding: 32rpx 28rpx;
|
||
|
||
.thereindexone_item {
|
||
image {
|
||
width: 96rpx;
|
||
height: 96rpx;
|
||
}
|
||
|
||
text {
|
||
margin-top: 16rpx;
|
||
font-size: 28rpx;
|
||
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
||
font-weight: 400;
|
||
color: #1A1A1A;
|
||
}
|
||
}
|
||
}
|
||
|
||
.fourindexone {
|
||
padding: 32rpx 28rpx;
|
||
|
||
.fourindexone_one {
|
||
font-size: 32rpx;
|
||
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||
font-weight: normal;
|
||
color: #1A1A1A;
|
||
|
||
.fourindexone_one_o {
|
||
display: inline-block;
|
||
width: 34rpx;
|
||
height: 4rpx;
|
||
background: linear-gradient(94deg, rgba(255, 255, 255, 0) 0%, #373746 100%);
|
||
border-radius: 4rpx;
|
||
}
|
||
|
||
.fourindexone_one-text {
|
||
padding: 0 10rpx;
|
||
}
|
||
|
||
.fourindexone_one_T {
|
||
display: inline-block;
|
||
width: 34rpx;
|
||
height: 4rpx;
|
||
background: linear-gradient(266deg, rgba(255, 255, 255, 0) 0%, #373746 100%);
|
||
border-radius: 4rpx;
|
||
}
|
||
}
|
||
|
||
.fourindexone_box {
|
||
.fourindexone_item {
|
||
position: relative;
|
||
width: 100%;
|
||
padding: 32rpx 0;
|
||
border-bottom: 1rpx dashed #F7F7F7;
|
||
|
||
.fourindexone_itemimage {
|
||
width: 164rpx;
|
||
height: 164rpx;
|
||
border-radius: 16rpx;
|
||
}
|
||
|
||
.fourindexone_item_there {
|
||
position: absolute;
|
||
right: 0;
|
||
bottom: 32rpx;
|
||
padding: 16rpx 22rpx;
|
||
font-size: 24rpx;
|
||
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||
font-weight: normal;
|
||
color: #FFFFFF;
|
||
background: linear-gradient(180deg, #A3A7D5 0%, #414154 100%);
|
||
border-radius: 8rpx;
|
||
}
|
||
|
||
.fourindexone_itemview {
|
||
|
||
height: 164rpx;
|
||
justify-content: space-evenly;
|
||
margin-left: 24rpx;
|
||
|
||
.fourindexone_itemview_one {
|
||
width: 300rpx;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
font-size: 32rpx;
|
||
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
||
font-weight: 400;
|
||
color: #1A1A1A;
|
||
}
|
||
|
||
.fourindexone_itemview_tow {
|
||
width: 300rpx;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
font-size: 24rpx;
|
||
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
||
font-weight: 400;
|
||
color: #666666;
|
||
}
|
||
|
||
.fourindexone_itemview_there {
|
||
.fourindexone_itemview_there_text {
|
||
font-size: 34rpx;
|
||
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||
font-weight: normal;
|
||
color: #FC5F69;
|
||
|
||
text {
|
||
font-size: 24rpx;
|
||
}
|
||
}
|
||
|
||
.fourindexone_itemview_there_text_x {
|
||
margin-left: 12rpx;
|
||
text-decoration: line-through;
|
||
font-size: 20rpx;
|
||
font-family: SourceHanSansCN-Regular-, SourceHanSansCN-Regular;
|
||
font-weight: normal;
|
||
color: #999999;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.fiveindexone {
|
||
// padding: 32rpx 28rpx;
|
||
width: 100%;
|
||
|
||
// background: linear-gradient(309deg, #FFFFFF 0%, #1A1A1A 100%);
|
||
// border-radius: 32rpx 32rpx 0px 0px;
|
||
.fiveindexonehtml {
|
||
width: 100%;
|
||
|
||
/deep/ img {
|
||
width: 100%;
|
||
}
|
||
}
|
||
|
||
.fiveindexone_one {
|
||
.fiveindexone_oneimage {
|
||
width: 28rpx;
|
||
height: 28rpx;
|
||
}
|
||
|
||
.fiveindexone_one_text {
|
||
margin-left: 12rpx;
|
||
font-size: 32rpx;
|
||
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||
font-weight: normal;
|
||
color: #FFFFFF;
|
||
}
|
||
}
|
||
|
||
.fiveindextow {
|
||
padding: 28rpx;
|
||
margin-top: 32rpx;
|
||
width: 100%;
|
||
background: rgba(255, 255, 255, 0.2);
|
||
border-radius: 18rpx;
|
||
|
||
.fiveindextowitem:nth-child(1) {
|
||
margin-top: 0;
|
||
}
|
||
|
||
.fiveindextowitem {
|
||
margin-top: 32rpx;
|
||
width: 100%;
|
||
|
||
view {
|
||
width: 33%;
|
||
font-size: 32rpx;
|
||
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||
font-weight: 500;
|
||
color: #FFFFFF;
|
||
}
|
||
}
|
||
}
|
||
|
||
.fiveindexthere {
|
||
overflow-x: scroll;
|
||
flex-wrap: nowrap;
|
||
|
||
.fiveindexthere_item:nth-child(1) {
|
||
margin-left: 0 !important;
|
||
}
|
||
|
||
.fiveindexthere_item {
|
||
margin-left: 54rpx;
|
||
|
||
.fiveindexthere_itemimage {
|
||
width: 120rpx;
|
||
height: 152rpx;
|
||
}
|
||
|
||
.fiveindexthere_item_one {
|
||
margin-top: 8rpx;
|
||
font-size: 28rpx;
|
||
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||
font-weight: 500;
|
||
color: #FFFFFF;
|
||
}
|
||
|
||
.fiveindexthere_item_tow {
|
||
margin-top: 8rpx;
|
||
font-size: 22rpx;
|
||
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
||
font-weight: 400;
|
||
color: rgba(255, 255, 255, 0.57);
|
||
}
|
||
}
|
||
}
|
||
|
||
.fiveindexfour {
|
||
.fiveindexfourimage {
|
||
margin-top: 70rpx;
|
||
position: relative;
|
||
width: 370rpx;
|
||
height: 396rpx;
|
||
background: linear-gradient(316deg, #636363 0%, #ACACAC 100%);
|
||
border-radius: 16rpx;
|
||
|
||
image {
|
||
position: absolute;
|
||
top: -30rpx;
|
||
left: -18rpx;
|
||
border-radius: 16rpx;
|
||
width: 372rpx;
|
||
height: 412rpx;
|
||
}
|
||
}
|
||
|
||
.fiveindexfourtext {
|
||
flex: 1;
|
||
margin-left: 70rpx;
|
||
|
||
text {
|
||
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
||
font-weight: 400;
|
||
}
|
||
}
|
||
}
|
||
|
||
.sixindex {
|
||
width: 90%;
|
||
margin: 0 auto;
|
||
padding: 24rpx 0;
|
||
text-align: center;
|
||
background: linear-gradient(360deg, #FBDDBB 0%, #FEE3C5 100%);
|
||
border-radius: 48rpx;
|
||
font-size: 32rpx;
|
||
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
|
||
font-weight: bold;
|
||
color: #422A07;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style> |