Commit 37edee7d authored by Mac's avatar Mac

1

parent b2887f7f
......@@ -424,6 +424,10 @@
"path":"personalList"
},{
"path":"subscribe"
},{
"path":"personal/couponDetail"
},{
"path":"designerDetail"
}
]
},
......
......@@ -75,7 +75,7 @@
<view
class="tips_t"
v-if="add_show==1&& JSON.stringify(setting) != '{}' "
v-if="add_show==1&& JSON.stringify(setting) != '{}' && setting.add_app_text!=null "
:style="{
'border-radius':setting.add_app_bg_radius+'rpx',
'opacity':setting.add_app_bg_transparency/100,
......
<style scoped>
.designerDetail {
width: 100%;
height: 100vh;
background: #FFFFFF;
font-family: aa;
}
.designerDetail .d-t-box{
width: 100%;
display: flex;
flex-direction: row;
align-items: flex-start;
border-top-left-radius: 15px;
border-top-right-radius: 15px;
background-repeat: no-repeat;
background-size: cover;
padding: 15px;
position: relative;
}
.designerDetail .tx{
position: relative;
}
</style>
<template>
<view class="designerDetail" v-if="loading">
<view class="d-t-box" :style="{'background-image': 'url(' + (personal.ServiceLogo ? personal.ServiceLogo : '') + ')',}">
<view style="width: 100%;height: 100%;position: absolute;left: 0;top: 0;background: RGBA(114, 113, 120, 0.4);"></view>
<view class="tx">
<u-avatar :src="personal.ServiceLogo" size="150"></u-avatar>
<view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
pageTitle: "服务人员详情",
mc: "",
loading: false,
ID:0,
personal:{},
current:0,
submitOrder:false,
list:[
{name: '服务项目'},
{name: '评价'},
],
};
},
onLoad(option) {
this.mc = this.$uiConfig.mainColor;
if(option && option.ID){
this.ID = option.ID
}
this.getDetail()//服务人员详情
},
mounted() {
uni.setNavigationBarTitle({
title: this.pageTitle,
});
},
methods: {
getDetail(){
uni.showLoading({
title: '加载中'
});
this.request2({
url: '/api/AppletStores/GetServicePersonalModel',
data: {ID:this.ID}
},
res => {
if (res.resultCode == 1) {
this.loading = true
this.personal=res.data
}
uni.hideLoading();
}
);
},
change(e){
this.current= e;
switch (e) {
case 0:
uni.createSelectorQuery().in(this).select(".c-d-box").boundingClientRect(data=>{//目标节点
uni.pageScrollTo({
scrollTop: data.top-40
})
}).exec();
break;
case 1:
uni.createSelectorQuery().in(this).select(".c-d-store").boundingClientRect(data=>{//目标节点
uni.pageScrollTo({
scrollTop: data.top-40
})
}).exec();
break;
}
},
},
};
</script>
<style scoped>
.couponDetail {
width: 100%;
height: 100vh;
background: #FFFFFF;
font-family: aa;
}
.couponDetail .cd-t{
width: 100%;
padding: 15px;
}
.couponDetail .cd-t-box{
width: 100%;
height: 115px;
background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/cpoun.png');
background-repeat: no-repeat;
background-size: cover ;
padding:15px 20px;
color:#EFDCCB ;
display: flex;
flex-direction: column;
justify-content: space-between;
border-radius: 6px;
position: relative;
}
.couponDetail .cd-tt{
width: 100%;
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
font-size: 15px;
}
.couponDetail .setmeal-pl{
position: absolute;
top:45.5px;
width: 24px;
height: 24px;
border-radius: 12px;
background: #FFF;
}
.couponDetail .c-d-box{
width: 100%;
padding: 15px;
}
.couponDetail .c-d-store{
width: 100%;
padding:0 15px 80px;
}
.couponDetail .title{
width: 100%;
height: 45px;
font-size: 16px;
color: #1B1D1E;
font-weight: bold;
line-height: 45px;
}
.couponDetail .min-title{
width: 100%;
height: 30px;
font-size: 13px;
color: #1B1D1E;
font-weight: bold;
line-height: 30px;
}
.couponDetail .useRange{
padding: 10px 0;
font-size: 12px;color: #999999;
}
.couponDetail .storebox{
width: 100%;
}
.couponDetail .storeitem{
display: flex;
flex-direction: row;
align-items: center;
margin-top: 15px;
}
.couponDetail .storeitem-r{
width: 1;
flex: 1;
height: 72px;
margin-left: 10px;
display: flex;flex-direction: column;
justify-content: space-between;
}
.couponDetail .s-r-l{
width: 1;
flex: 1;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.couponDetail .storeitem-f{
display: flex;flex-direction: row;align-items: center;
}
.couponDetail .good-rb-text{
font-size: 13px;
color: #FEC471;
margin-left: 2px;
}
.couponDetail .submit{
width: 100%;
height: 60px;
background: #FFF;
position: fixed;
left: 0;
bottom: 0;
padding: 0 15px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
z-index: 99;
}
</style>
<template>
<view class="couponDetail" v-if="loading">
<view class="cd-t">
<view class="cd-t-box">
<text style="font-size: 12px;color: rgba(239, 220, 203, 0.6);">{{cdetail.Name}}</text>
<text class="cd-tt" >{{cdetail.Describe}}</text>
<text style="font-size: 13px;">核销次数:{{cdetail.TotalNum}}</text>
<view class="setmeal-pl" style="left: -12px;"></view>
<view class="setmeal-pl" style="right: -12px;"> </view>
</view>
</view>
<view style="width: 100%;height: 15px;background: #FAF8F9;" ></view>
<view class="sticky">
<u-sticky>
<view class="store-tabs">
<u-tabs :list="list" :is-scroll="false" :current="current" @change="change" :active-color="mc"></u-tabs>
</view>
</u-sticky>
</view>
<view class="c-d-box">
<view class="title" >套餐详情</view>
<view class="min-title">使用范围</view>
<view class="useRange" >
<text v-if="cdetail.UseType==1"><text v-for="(x, j) in cdetail.ProductList" :key="x">{{x.Relevance+'、'}}</text></text>
<text v-if="cdetail.UseType==2"><text v-for="(x, j) in cdetail.ProductList" :key="x">{{x.Relevance+'、'}}</text></text>
<text v-if="cdetail.UseType==3">全场通用</text>
</view>
<view class="min-title">使用时间</view>
<view style="font-size: 12px;color: #999999;">
有效期:{{cdetail.IndateType==1?'领取后'+cdetail.IndateDay+'天内有效':cdetail.StartDate+'-'+cdetail.EndDate}}
</view>
</view>
<view style="width: 100%;height: 15px;background: #FAF8F9;" ></view>
<view class="c-d-store">
<view class="title" >适用门店</view>
<view class="storebox">
<view class="storeitem" v-for="(x, j) in cdetail.StoresList" :key="x">
<image mode="aspectFill" :src="x.CoverImg" style="width: 75px;height: 75px;border-radius: 6px;" ></image>
<view class="storeitem-r">
<view class="storeitem-f">
<view class="s-r-l" style="width:calc(100vw - 165px); 15px;color: #000000;font-weight: bold;">{{x.Name}}</view>
<view style="width: 50px;text-align: right;font-size: 12px;color: #111111;">{{x.KM>=1000?(x.KM/1000).toFixed(2)+'km':x.KM+'m'}}</view>
</view>
<view class="storeitem-f">
<u-rate
:current="x.Score!=null &&x.Score>0?x.Score:'5'"
active-color="#FEC471" inactive-color="#DDDDDD"
active-icon="star"
inactive-icon="star-o"
size="26"
:disabled="true"
></u-rate>
<text class="good-rb-text">{{x.Score?x.Score.toFixed(1):'5.0'}}</text>
</view>
<view class="storeitem-f">
<image mode="aspectFill" src="../../../static/images/Icon.png" style="width: 9px;height: 12px;" ></image>
<text class="s-r-l" style="width: calc(100vw - 133px);margin-left: 3px;">{{x.Address}}</text>
</view>
</view>
</view>
</view>
</view>
<view class="submit">
<text>{{cdetail.Name}}</text>
<u-button
size="80"
:ripple="true"
shape="circle"
@click="cdetail.MemberNum>0?'':submitreceive()"
:custom-style="{
backgroundColor:cdetail.MemberNum>0? '#D4D4D4':mc,
height: '80rpx',
color: '#FFF',
fontSize: '14px',
}"
>
{{cdetail.MemberNum>0?'已领取':'立即领取'}}
</u-button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
pageTitle: "套餐卡详情",
mc: "",
loading: false,
ID:0,
cdetail:{},
current:0,
submitOrder:false,
list:[
{name: '套餐详情'},
{name: '适用门店'},
],
cstore:0,
};
},
onLoad(option) {
this.mc = this.$uiConfig.mainColor;
if(option && option.ID){
this.ID = option.ID
}
this.getDetail()//获取套餐卡详情
},
mounted() {
uni.setNavigationBarTitle({
title: this.pageTitle,
});
},
methods: {
getDetail(){
uni.showLoading({
title: '加载中'
});
this.request2({
url: '/api/AppletStores/GetReserveCouponDetail',
data: {ID:this.ID}
},
res => {
if (res.resultCode == 1) {
this.loading = true
this.cdetail=res.data
}
uni.hideLoading();
}
);
},
submitreceive(){
this.request2({
url: '/api/AppletStores/GrantCoupon',
data: {ID:this.ID}
},
res => {
if (res.resultCode == 1) {
uni.showToast({
title: res.message,
icon: "none",
});
this.cdetail.MemberNum=1
}
}
);
},
change(e){
this.current= e;
switch (e) {
case 0:
uni.createSelectorQuery().in(this).select(".c-d-box").boundingClientRect(data=>{//目标节点
uni.pageScrollTo({
scrollTop: data.top-40
})
}).exec();
break;
case 1:
uni.createSelectorQuery().in(this).select(".c-d-store").boundingClientRect(data=>{//目标节点
uni.pageScrollTo({
scrollTop: data.top-40
})
}).exec();
break;
}
},
},
};
</script>
......@@ -91,6 +91,7 @@
height: 100%;
font-size: 12px;
color: #333;
position: relative;
}
.storeDetails .store-news .right .share-icon {
width: 22px;
......@@ -246,6 +247,18 @@
</view>
<view style="width: 100%;height: 210px;position: relative;" class="u-skeleton-rect">
<image style="width: 100%;height: 210px;position: relative;" mode="aspectFill" :src="g.storeCoverImg?g.storeCoverImg:''"/>
<!-- <swiper
indicator-dots
:autoplay="false"
:interval="1000"
style="height:210px;"
>
<block v-for="(item, index) in g.storeNavImg" :key="index">
<swiper-item>
<image @click="previewImage(index)" style="width:100%;height:100%;" :src="item.pic_url" mode=""></image>
</swiper-item>
</block>
</swiper> -->
<view
class="headStatus"
:style="[
......@@ -326,21 +339,20 @@
商家套餐卡
</view>
<view class="setmeal-box">
<view v-for="(cl, ci) in list" :key="ci">
<view v-for="(cl, ci) in allCoupon" :key="ci" @click="gocoupon(cl)">
<view class="setmeal-item u-skeleton-rect" :style="{'margin-left':ci==0?'15px':'0','margin-right': ci+1==list.length?'15px':'5px'}">
<view class="setmeal-item-top">
<view style="font-size: 14px;margin-bottom: 3px;" class="setmeal-name">剪发卡</view>
<view style="font-size: 11px;color: rgba(239, 220, 203, 0.6);" class="setmeal-name">总监精剪+造型+洗吹</view>
<view style="font-size: 14px;margin-bottom: 3px;" class="setmeal-name">{{cl.Name}}</view>
<view style="font-size: 11px;color: rgba(239, 220, 203, 0.6);" class="setmeal-name">{{cl.Describe}}</view>
<view class="setmeal-price">
<text style="font-size: 13px;"></text>
<text style="font-size: 20px;font-weight: bold;">78.4</text>
<text style="font-size: 13px;">/次 3次¥235.2</text>
<text style="font-size: 13px;">核销次数:{{cl.TotalNum}}</text>
</view>
<view class="setmeal-pl" style="left: -9px;"></view>
<view class="setmeal-pl" style="right: -9px;"> </view>
</view>
<view class="setmeal-item-bottom">
有效期:2020.10.05 18:00
有效期:{{cl.IndateType==1?'领取后'+cl.IndateDay+'天内有效':cl.StartDate.split(' ')[0]+'至'+cl.EndDate.split(' ')[0]}}
</view>
</view>
</view>
......@@ -352,7 +364,7 @@
</view>
<view class="designer u-skeleton-rect" >
<view class="designer-item" v-for="(x, ci2) in personalList" :key="ci2" v-if="personalList.length>0">
<view class="designer-item" v-for="(x, ci2) in personalList" :key="ci2" v-if="personalList.length>0" @click="godesigner(x)">
<view class="designer-flex" style="width: calc(100vw - 100px);">
<u-avatar :src="x.ServiceLogo" size="110"></u-avatar>
<view class="designer-name">
......@@ -378,7 +390,7 @@
预约
</view>
</view>
<view v-if="personalList.length==0" style="width: 100%;height: 50px;line-height: 50px;text-align: center;">
<view v-if="personalList.length==0" style="width: 100%;height: 50px;line-height: 50px;text-align: center;" >
暂无设计师数据~
</view>
</view>
......@@ -457,6 +469,7 @@
comments:[],
detailContent: "",
personalList:[],
allCoupon:[],
}
},
onLoad(option){
......@@ -573,7 +586,7 @@
this.designerH = data.top
}
}).exec();
uni.createSelectorQuery().select(".wxParse").boundingClientRect(data=>{
uni.createSelectorQuery().select(".richtext").boundingClientRect(data=>{
if(data && data.top){
this.richtextH = data.top
}
......@@ -749,6 +762,16 @@
gbAuth() {
this.showAuth = false;
},
gocoupon(item){//优惠券详情
uni.navigateTo({
url: "/pages/reserve/personal/couponDetail?ID="+item.CouponId,
})
},
godesigner(item){//设计师详情
uni.navigateTo({
url: "/pages/reserve/designerDetail?ID="+item.ID,
})
}
}
}
</script>
......
......@@ -37,17 +37,45 @@
.subscribe .classify-t{
width: 100%;
background: #FFF;
padding: 15px;
}
.subscribe .c-t-box{
width: 100%;
height: 143px;
height: 110px;
border-radius: 6px;
background: #FAF8F9;
padding: 15px 0;
display: flex;width:100%;flex-direction: row;overflow-x: auto;
}
.subscribe .c-tw-item{
width: 80px;
height: 90px;
border-radius: 6px;
color: #888888;
margin-right: 5px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
font-size: 12px;
box-shadow:0 6px 10px 1px #F2F2F2;
}
.goodsimg{
width: 100%;height: 60px;
border-top-left-radius: 6px;
border-top-right-radius: 6px;
}
.subscribe .persionName-t{
width: 100%;height: 30px;
line-height: 30px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
padding: 0 4px;
}
.subscribe .c-t-item{
width: 80px;
height: 113px;
......@@ -123,6 +151,7 @@
flex: 1;
padding-left:20px ;text-align: right;font-size: 12px
}
.subscribe .persionName{
width: 80px;
display: inline-block;
......@@ -179,17 +208,14 @@
<view class="classify-t" v-if="OfflineGoods.length>0">
<view class="c-t-box">
<view v-for="(c, i) in OfflineGoods" :key="i">
<view class="c-t-item" @click="getgoodsList(c)"
<view class="c-tw-item" @click="getgoodsList(c)"
:style="{
'margin-left':i==0?'15px':'0',
'margin-right': i+1==OfflineGoods.length?'15px':'5px',
'border-color':c.id== GoodsId?'#FF4048':'#D8D8D8',
'color':c.id== GoodsId?'#FF4048':'#888888',
'background':c.id== GoodsId?'#FBE5E7':'#FFF',
'font-weight':c.id== GoodsId?'Bold':'100',
'margin-left':'15px',
'margin-right': i+1==OfflineGoods.length?'15px':'0px',
'transform':c.id== GoodsId?'scale(1.12)':'none'
}">
<image mode="aspectFill" :src="c.cover_pic" style="width: 30px;height: 30px;"></image>
<text class="persionName">{{c.name}}</text>
<image mode="aspectFill" class="goodsimg" :src="c.cover_pic" ></image>
<text class="persionName-t" >{{c.name}}</text>
</view>
</view>
......@@ -226,8 +252,8 @@
</view>
<view style="width: 100%;height: 15px;background: #FAF8F9;" v-if="designerList.length>0"></view>
<view class="title" v-if="designerList.length>0">设计师</view>
<view class="classify-t" style="padding: 0;" v-if="designerList.length>0">
<view class="c-t-box" style="padding: 0 0 15px;background: #FFF;">
<view class="classify-t" v-if="designerList.length>0">
<view class="c-t-box">
<view v-for="(c, i) in designerList" :key="i">
<view class="c-t-item" @click="getdesigner(c)"
:style="{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment