Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mallapp
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
viitto
mallapp
Commits
ecbc760c
Commit
ecbc760c
authored
Nov 03, 2020
by
Mac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
9f0b0bf4
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
411 additions
and
17 deletions
+411
-17
designerDetail.vue
pages/reserve/designerDetail.vue
+403
-12
storeDetails.vue
pages/reserve/storeDetails.vue
+7
-4
subscribe.vue
pages/reserve/subscribe.vue
+1
-1
No files found.
pages/reserve/designerDetail.vue
View file @
ecbc760c
...
@@ -3,7 +3,8 @@
...
@@ -3,7 +3,8 @@
width
:
100%
;
width
:
100%
;
height
:
100vh
;
height
:
100vh
;
background
:
#FFFFFF
;
background
:
#FFFFFF
;
font-family
:
aa
;
margin-bottom
:
80px
;
}
}
.designerDetail
.d-t-box
{
.designerDetail
.d-t-box
{
width
:
100%
;
width
:
100%
;
...
@@ -16,44 +17,380 @@
...
@@ -16,44 +17,380 @@
background-size
:
cover
;
background-size
:
cover
;
padding
:
15px
;
padding
:
15px
;
position
:
relative
;
position
:
relative
;
font-family
:
aa
;
}
}
.designerDetail
.tx
{
.designerDetail
.tx
{
position
:
relative
;
position
:
relative
;
}
}
.designerDetail
.bj
{
width
:
100%
;
height
:
100%
;
position
:
absolute
;
left
:
0
;
top
:
0
;
background
:
RGBA
(
114
,
113
,
120
,
0.3
);
border-top-left-radius
:
15px
;
border-top-right-radius
:
15px
;
}
.designerDetail
.tx-sex
{
width
:
25px
;
height
:
25px
;
border-radius
:
12.5px
;
background
:
#FFF
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
position
:
absolute
;
right
:
0
;
bottom
:
10px
;
}
.designerDetail
.tx-c
{
width
:
1
;
flex
:
1
;
margin-left
:
10px
;
}
.designerDetail
.tx-r
{
width
:
47px
;
height
:
34px
;
text-align
:
right
;
}
.designerDetail
.tx-c-t
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
color
:
#FFF
;
}
.designerDetail
.superone
{
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
.designerDetail
.tx-cc
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
flex-start
;
justify-content
:
space-between
;
}
.designerDetail
.tx-cc-l
{
width
:
1
;
flex
:
1
;
margin-top
:
8px
;
}
.designerDetail
.shuxian
{
width
:
1px
;
height
:
9px
;
background
:
#FFF
;
margin
:
0
8px
;
}
.designerDetail
.gl-left-item
{
padding
:
2px
4px
;
border-radius
:
2px
;
font-size
:
10px
;
color
:
#FFF
;
margin-right
:
5px
;
margin-bottom
:
5px
;
}
.designerDetail
.d-info
{
width
:
100%
;
padding
:
15px
;
font-size
:
13px
;
color
:
#111111
;
font-family
:
aa
;
}
.designerDetail
.d-i-item
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
flex-start
;
}
.designerDetail
.serve
{
width
:
100%
;
}
.designerDetail
.title
{
width
:
100%
;
height
:
45px
;
font-size
:
16px
;
color
:
#1B1D1E
;
font-weight
:
bold
;
padding
:
0
15px
;
line-height
:
45px
;
}
.designerDetail
.title-t
{
width
:
100%
;
height
:
45px
;
font-size
:
16px
;
color
:
#1B1D1E
;
font-weight
:
bold
;
padding
:
0
15px
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
space-between
;
}
.designerDetail
.setmeal-box
{
display
:
flex
;
width
:
100%
;
flex-direction
:
row
;
overflow-x
:
auto
;
padding
:
15px
0
;
border-bottom
:
1px
solid
#E2E2E2
;
}
.designerDetail
.setmeal-item
{
width
:
200px
;
/* height: 98px; */
background
:
#FFF
;
border-radius
:
6px
;
box-shadow
:
0
6px
10px
1px
#F2F2F2
;
overflow
:
hidden
;
}
.designerDetail
.setmeal-item-top
{
width
:
100%
;
height
:
75px
;
background
:
#221818
;
padding
:
8px
15px
;
color
:
#EFDCCB
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/cpoun.png')
;
background-repeat
:
no-repeat
;
background-size
:
cover
;
position
:
relative
;
}
.designerDetail
.setmeal-pl
{
position
:
absolute
;
top
:
28.5px
;
width
:
18px
;
height
:
18px
;
border-radius
:
9px
;
background
:
#FFF
;
}
.designerDetail
.setmeal-item-bottom
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
height
:
23px
;
font-size
:
10px
;
color
:
#221818
;
background
:
#FAF8F9
;
font-family
:
aa
;
}
.designerDetail
.setmeal-name
{
width
:
1
;
flex
:
1
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
.designerDetail
.setmeal-price
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
flex-end
;
}
.designerDetail
.d-goods
{
display
:
flex
;
flex-direction
:
column
;
padding
:
0
15px
10px
;
}
.designerDetail
.d-goods-item
{
width
:
100%
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
padding
:
10px
0
;
}
.designerDetail
.d-goods-item-r
{
width
:
calc
(
100vw
-
172px
);
height
:
68px
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
margin-left
:
15px
;
}
.designerDetail
.item-r-title
{
width
:
100%
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
margin-bottom
:
10px
;
}
.designerDetail
.item-r-b
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
space-between
;
font-size
:
12px
;
}
.designerDetail
.btn
{
width
:
100%
;
padding
:
15px
;
position
:
fixed
;
left
:
0
;
bottom
:
0
;
background
:
#FFF
;
z-index
:
99
;
}
.designerDetail
.btn-box
{
width
:
100%
;
height
:
45px
;
border-radius
:
6px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
14px
;
color
:
#FFFFFF
;
}
</
style
>
</
style
>
<
template
>
<
template
>
<view
class=
"designerDetail"
v-if=
"loading"
>
<view
class=
"designerDetail"
v-if=
"loading"
>
<view
class=
"d-t-box"
:style=
"
{'background-image': 'url(' + (personal.ServiceLogo ? personal.ServiceLogo : '') + ')',}">
<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=
"bj
"
></view>
<view
class=
"tx"
>
<view
class=
"tx"
>
<u-avatar
:src=
"personal.ServiceLogo"
size=
"150"
></u-avatar>
<u-avatar
:src=
"personal.ServiceLogo"
size=
"150"
></u-avatar>
<view>
<view
class=
"tx-sex"
>
<image
v-if=
"personal.Gender==1"
style=
"width: 13px;height: 13px;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/male.png"
></image>
<image
v-if=
"personal.Gender==2"
style=
"width: 13px;height: 13px;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/female.png"
></image>
</view>
</view>
</view>
</view>
<view
class=
"tx-c"
>
<view
class=
"tx-c-t"
>
<view
style=
"font-size: 18px;font-weight: bold;max-width: 150px;"
class=
"superone"
>
{{
personal
.
Name
}}
</view>
<u-rate
:current=
"personal.Score!=null &&personal.Score>0?personal.Score:'5'"
active-color=
"#FEC471"
inactive-color=
"#DDDDDD"
active-icon=
"star"
inactive-icon=
"star-o"
size=
"26"
:disabled=
"true"
></u-rate>
<text
style=
"margin-left: 3px;font-size: 13px;"
>
{{
personal
.
Score
?
personal
.
Score
.
toFixed
(
1
):
'5.0'
}}
</text>
</view>
<view
class=
"tx-cc"
>
<view
class=
"tx-cc-l"
>
<view
style=
"display: flex;flex-direction: row;align-items: center;font-size: 12px;color: #FFF;"
>
<view>
{{
personal
.
Major
}}
</view>
<view
class=
"shuxian"
></view>
<view>
从业
{{
personal
.
WorkYears
}}
年
</view>
<view
class=
"shuxian"
></view>
<view>
预约人次
{{
personal
.
OrderNum
}}
</view>
</view>
<view
style=
"display: flex;flex-direction: row;align-items: center;flex-wrap: wrap;font-size: 12px;color: #FFF;margin-top: 5px;"
>
<view
class=
"gl-left-item"
:style=
"
{background:mc}" v-for="(x, i) in personal.LableNameList" :key="ci">
{{
x
}}
</view>
</view>
</view>
<view
class=
"tx-r"
@
click=
"gophone"
>
<image
mode=
"aspectFill"
style=
"width: 30px;height: 30px;"
src=
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/osTel.png'
/>
</view>
</view>
</view>
</view>
<view
class=
"d-info"
>
<view
class=
"d-i-item"
>
<text
style=
"width: 45px;"
>
简介:
</text>
<view
style=
"padding-bottom: 10px;flex:1;border-bottom: 1px solid #E2E2E2;"
>
{{
personal
.
Introduction
!=
null
&&
personal
.
Introduction
!=
''
?
personal
.
Introduction
:
'暂无'
}}
</view>
</view>
<view
class=
"d-i-item"
style=
"margin-top: 10px;"
>
<text
style=
"width: 45px;"
>
店名:
</text>
<view
style=
"display: flex;flex-direction: column;"
>
{{
personal
.
StoreName
}}
<view
style=
"display: flex;flex-direction: row;align-items: center;color: #1B1D1E;margin-top: 8px;"
>
<u-icon
name=
"location"
color=
"#CCCCCC"
size=
"23"
style=
'margin-right: 5px;'
></u-icon>
{{
personal
.
StoreAddress
}}
</view>
</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=
"serve"
>
<view
class=
"title"
>
TA可服务会员卡
<text
style=
"font-size: 11px;color: #1B1D1E;"
>
(
{{
allCoupon
.
length
}}
)
</text></view>
<view
class=
"setmeal-box"
>
<view
v-for=
"(cl, ci) in allCoupon"
:key=
"ci"
@
click=
"gocoupon(cl)"
>
<view
class=
"setmeal-item"
:style=
"
{'margin-left':ci==0?'15px':'0','margin-right': ci+1==allCoupon.length?'15px':'5px'}">
<view
class=
"setmeal-item-top"
>
<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;"
>
核销次数:
{{
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"
>
有效期:
{{
cl
.
IndateType
==
1
?
'领取后'
+
cl
.
IndateDay
+
'天内有效'
:
cl
.
StartDate
.
split
(
' '
)[
0
]
+
'至'
+
cl
.
EndDate
.
split
(
' '
)[
0
]
}}
</view>
</view>
</view>
</view>
<view
class=
"title"
>
TA可服务的商品
<text
style=
"font-size: 11px;color: #1B1D1E;"
>
(
{{
personal
.
goodsList
.
length
}}
)
</text></view>
<view
class=
"d-goods"
>
<view
class=
"d-goods-item"
v-for=
"(c, j) in personal.goodsList"
:key=
"c"
>
<image
style=
"width: 125px;height: 70px;border-radius: 4px;"
mode=
"aspectFill"
:src=
"c.CoverImage"
/>
<view
class=
"d-goods-item-r"
>
<view
class=
"item-r-title"
style=
"font-size: 14px;color: #1B1D1E;"
>
{{
c
.
Name
}}
</view>
<view
class=
"item-r-title"
style=
"font-size: 12px;color: #999999;"
>
{{
c
.
SubName
}}
</view>
<view
class=
"item-r-b"
>
<view
style=
"display: flex;flex-direction: row;align-items: center;"
>
<text
:style=
"
{'color':mc}">¥
<text
style=
"font-size: 14px;"
>
{{
c
.
DepositMoney
}}
</text></text>
<text
style=
"text-decoration:line-through;color: #999999;margin-left: 10px;font-size: 11px;"
>
¥
{{
c
.
SellingPrice
}}
</text>
</view>
<text
style=
"color: #999999;"
>
已售
{{
c
.
GoodsBuyNum
}}
件
</text>
</view>
</view>
</view>
</view>
</view>
<view
style=
"width: 100%;height: 15px;background: #FAF8F9;"
></view>
<view
class=
"comment"
style=
"padding-bottom: 80px;"
>
<view
class=
"title-t"
>
<view
style=
"display: flex;flex-direction: row;"
>
评价
</view>
</view>
<view
v-if=
"comment.length==0"
style=
"width: 100%;height: 50px;line-height: 50px;text-align: center;"
>
暂无评价~
</view>
</view>
</view>
<view
class=
"btn"
>
<view
class=
"btn-box"
:style=
"
{'background':mc}" @click="gosubscribe">
预约
</view>
</view>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
</view>
</view>
</
template
>
</
template
>
<
script
>
<
script
>
import
auth
from
"@/components/auth/index"
;
export
default
{
export
default
{
components
:
{
auth
,
},
data
()
{
data
()
{
return
{
return
{
pageTitle
:
"服务人员详情"
,
pageTitle
:
"服务人员详情"
,
mc
:
""
,
mc
:
""
,
loading
:
false
,
loading
:
false
,
ID
:
0
,
ID
:
0
,
storeId
:
0
,
personal
:{},
personal
:{},
showAuth
:
false
,
current
:
0
,
current
:
0
,
submitOrder
:
false
,
submitOrder
:
false
,
list
:[
list
:[
{
name
:
'服务项目'
},
{
name
:
'服务项目'
},
{
name
:
'评价'
},
{
name
:
'评价'
},
],
],
allCoupon
:[],
comment
:[],
u
:{},
};
};
},
},
...
@@ -62,11 +399,13 @@
...
@@ -62,11 +399,13 @@
if
(
option
&&
option
.
ID
){
if
(
option
&&
option
.
ID
){
this
.
ID
=
option
.
ID
this
.
ID
=
option
.
ID
}
}
if
(
option
&&
option
.
storeId
){
this
.
storeId
=
option
.
storeId
}
this
.
getDetail
()
//服务人员详情
this
.
getDetail
()
//服务人员详情
this
.
getAllCPList
();
this
.
getAppCommentList
()
},
},
mounted
()
{
mounted
()
{
uni
.
setNavigationBarTitle
({
uni
.
setNavigationBarTitle
({
title
:
this
.
pageTitle
,
title
:
this
.
pageTitle
,
...
@@ -93,20 +432,45 @@
...
@@ -93,20 +432,45 @@
}
}
);
);
},
},
getAllCPList
(){
//获取门店套餐卡
this
.
request2
({
url
:
'/api/AppletStores/GetAllCouponPageList'
,
data
:
{
pageIndex
:
1
,
pageSize
:
999
,
StoreId
:
this
.
storeId
}
},
res
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
allCoupon
=
res
.
data
.
pageData
}
}
);
},
getAppCommentList
(){
this
.
request2
({
url
:
'/api/AppletStores/GetAppletGoodsCommentPageList'
,
data
:
{
pageIndex
:
1
,
pageSize
:
10
,
StoreId
:
this
.
storeId
,
GoodsId
:
0
,
ServicePersonalId
:
this
.
ID
}
},
res
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
comment
=
res
.
data
.
pageData
}
}
);
},
change
(
e
){
change
(
e
){
this
.
current
=
e
;
this
.
current
=
e
;
switch
(
e
)
{
switch
(
e
)
{
case
0
:
case
0
:
uni
.
createSelectorQuery
().
in
(
this
).
select
(
".
c-d-box
"
).
boundingClientRect
(
data
=>
{
//目标节点
uni
.
createSelectorQuery
().
in
(
this
).
select
(
".
serve
"
).
boundingClientRect
(
data
=>
{
//目标节点
uni
.
pageScrollTo
({
uni
.
pageScrollTo
({
scrollTop
:
data
.
top
-
40
scrollTop
:
data
.
top
-
40
})
})
}).
exec
();
}).
exec
();
break
;
break
;
case
1
:
case
1
:
uni
.
createSelectorQuery
().
in
(
this
).
select
(
".c
-d-store
"
).
boundingClientRect
(
data
=>
{
//目标节点
uni
.
createSelectorQuery
().
in
(
this
).
select
(
".c
omment
"
).
boundingClientRect
(
data
=>
{
//目标节点
uni
.
pageScrollTo
({
uni
.
pageScrollTo
({
scrollTop
:
data
.
top
-
40
scrollTop
:
data
.
top
-
40
})
})
...
@@ -114,6 +478,33 @@
...
@@ -114,6 +478,33 @@
break
;
break
;
}
}
},
},
gophone
(){
uni
.
makePhoneCall
({
phoneNumber
:
this
.
personal
.
Telephone
//仅为示例
});
},
gocoupon
(
item
){
//优惠券详情
uni
.
navigateTo
({
url
:
"/pages/reserve/personal/couponDetail?ID="
+
item
.
CouponId
,
})
},
gosubscribe
(){
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
if
(
this
.
u
)
{
uni
.
navigateTo
({
url
:
"/pages/reserve/subscribe?id="
+
this
.
storeId
,
})
}
else
{
this
.
showAuth
=
true
;
}
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
},
},
},
};
};
</
script
>
</
script
>
...
...
pages/reserve/storeDetails.vue
View file @
ecbc760c
...
@@ -338,15 +338,18 @@
...
@@ -338,15 +338,18 @@
<view
class=
"title-c"
>
<view
class=
"title-c"
>
商家套餐卡
商家套餐卡
</view>
</view>
<view
class=
"setmeal-box"
>
<view
class=
"setmeal-box"
>
<view
v-for=
"(cl, ci) in allCoupon"
:key=
"ci"
@
click=
"gocoupon(cl)"
>
<view
v-if=
"allCoupon.length==0"
style=
"width: 100%;height: 50px;line-height: 50px;text-align: center;"
>
<view
class=
"setmeal-item u-skeleton-rect"
:style=
"
{'margin-left':ci==0?'15px':'0','margin-right': ci+1==list.length?'15px':'5px'}">
暂无任何优惠~
</view>
<view
v-for=
"(cl, ci) in allCoupon"
:key=
"ci"
@
click=
"gocoupon(cl)"
v-if=
"allCoupon.length>0"
>
<view
class=
"setmeal-item u-skeleton-rect"
:style=
"
{'margin-left':ci==0?'15px':'0','margin-right': ci+1==allCoupon.length?'15px':'5px'}">
<view
class=
"setmeal-item-top"
>
<view
class=
"setmeal-item-top"
>
<view
style=
"font-size: 14px;margin-bottom: 3px;"
class=
"setmeal-name"
>
{{
cl
.
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
style=
"font-size: 11px;color: rgba(239, 220, 203, 0.6);"
class=
"setmeal-name"
>
{{
cl
.
Describe
}}
</view>
<view
class=
"setmeal-price"
>
<view
class=
"setmeal-price"
>
<text
style=
"font-size: 13px;"
>
核销次数:
{{
cl
.
TotalNum
}}
次
</text>
<text
style=
"font-size: 13px;"
>
核销次数:
{{
cl
.
TotalNum
}}
次
</text>
</view>
</view>
<view
class=
"setmeal-pl"
style=
"left: -9px;"
></view>
<view
class=
"setmeal-pl"
style=
"left: -9px;"
></view>
<view
class=
"setmeal-pl"
style=
"right: -9px;"
>
</view>
<view
class=
"setmeal-pl"
style=
"right: -9px;"
>
</view>
...
@@ -769,7 +772,7 @@
...
@@ -769,7 +772,7 @@
},
},
godesigner
(
item
){
//设计师详情
godesigner
(
item
){
//设计师详情
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
"/pages/reserve/designerDetail?ID="
+
item
.
ID
,
url
:
"/pages/reserve/designerDetail?ID="
+
item
.
ID
+
'&storeId='
+
this
.
id
,
})
})
}
}
}
}
...
...
pages/reserve/subscribe.vue
View file @
ecbc760c
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
.subscribe
.subscribe-box
{
.subscribe
.subscribe-box
{
width
:
100%
;
width
:
100%
;
background
:
#FFF
;
background
:
#FFF
;
padding
:
15px
0
80px
;
padding
-bottom
:
80px
;
}
}
.subscribe
.title
{
.subscribe
.title
{
width
:
100%
;
width
:
100%
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment