Files
czg_zysh_ointment_weapp/pages/index/indexInfo.vue
2024-03-21 15:54:39 +08:00

600 lines
14 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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>