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
ee9fdc4b
Commit
ee9fdc4b
authored
Oct 11, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
商城修改
parent
47ce8df3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1505 additions
and
1282 deletions
+1505
-1282
style3.vue
components/cats/style3.vue
+66
-53
goodsku2.vue
components/goods/goodsku2.vue
+1
-0
goods.vue
pages/goods/goods.vue
+1438
-1229
No files found.
components/cats/style3.vue
View file @
ee9fdc4b
...
...
@@ -11,65 +11,67 @@
padding: 10px;
padding-bottom: 0px;
"
>
<u-row
gutter=
"20"
>
<u-col
span=
"6"
v-for=
"(cx, ci) in g"
:key=
"ci"
>
<view
class=
"good"
@
click=
"clickHandler(cx)"
>
<view
class=
"good-img"
style=
"position: relative;"
>
<image
mode=
"aspectFit"
:src=
"cx.cover_pic"
style=
"width: 100%; height: 100%"
>
<u-row
gutter=
"12"
>
<view
class=
"layout"
>
<u-col
span=
"6"
v-for=
"(cx, ci) in g"
:key=
"ci"
>
<view
class=
"good"
@
click=
"clickHandler(cx)"
>
<view
class=
"good-img"
style=
"position: relative;"
>
<image
mode=
"aspectFit"
:src=
"cx.cover_pic"
style=
"width: 100%; height: 100%"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/plugins-out.png"
v-if=
"cx.totalStock==0"
style=
"width: 100%; height: 100%;position: absolute;left:0;top:0;background: #000;opacity: 0.6;"
/>
</image>
</view>
<view
class=
"good-name"
>
<view
v-if=
"cx.marketingLogo.iswords && cx.marketingLogo.iswords==1&& cx.marketingLogo.words!=''"
class=
"Logo"
:style=
"
{color: cx.marketingLogo.wordsColor,background:cx.marketingLogo.wordsBack ,}">
{{
cx
.
marketingLogo
.
words
}}
</view>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/plugins-out.png"
v-if=
"cx.totalStock==0"
style=
"width: 100%; height: 100%;position: absolute;left:0;top:0;background: #000;opacity: 0.6;"
/>
</image>
</view>
<view
class=
"good-name"
>
<view
v-if=
"cx.marketingLogo.iswords && cx.marketingLogo.iswords==1&& cx.marketingLogo.words!=''"
class=
"Logo"
:style=
"
{color: cx.marketingLogo.wordsColor,background:cx.marketingLogo.wordsBack ,}">
{{
cx
.
marketingLogo
.
words
}}
</view>
<image
v-if=
"cx.marketingLogo.iswords&&cx.marketingLogo.iswords==2&& cx.marketingLogo.ico!=''"
mode=
"heightFix"
:src=
"cx.marketingLogo.ico"
style=
" height: 12px;margin-right: 5px"
/>
<view
style=
"color: #FF4048;background: #fdf6ec;padding: 0 5px;display: inline-block;height: 32rpx;font-size: 20rpx;margin-right: 5rpx;"
v-if=
"cx.freeShippingFullMoneyPinkage>0 || cx.freeShippingFullNumPinkage>0"
>
{{
cx
.
freeShippingFullMoneyPinkage
>
0
&&
cx
.
freeShippingFullNumPinkage
==
0
?
cx
.
freeShippingFullMoneyPinkage
+
'元包邮'
:
''
}}
{{
cx
.
freeShippingFullMoneyPinkage
==
0
&&
cx
.
freeShippingFullNumPinkage
>
0
?
cx
.
freeShippingFullNumPinkage
+
'件包邮'
:
''
}}
v-if=
"cx.marketingLogo.iswords&&cx.marketingLogo.iswords==2&& cx.marketingLogo.ico!=''"
mode=
"heightFix"
:src=
"cx.marketingLogo.ico"
style=
" height: 12px;margin-right: 5px"
/>
<view
style=
"color: #FF4048;background: #fdf6ec;padding: 0 5px;display: inline-block;height: 32rpx;font-size: 20rpx;margin-right: 5rpx;"
v-if=
"cx.freeShippingFullMoneyPinkage>0 || cx.freeShippingFullNumPinkage>0"
>
{{
cx
.
freeShippingFullMoneyPinkage
>
0
&&
cx
.
freeShippingFullNumPinkage
==
0
?
cx
.
freeShippingFullMoneyPinkage
+
'元包邮'
:
''
}}
{{
cx
.
freeShippingFullMoneyPinkage
==
0
&&
cx
.
freeShippingFullNumPinkage
>
0
?
cx
.
freeShippingFullNumPinkage
+
'件包邮'
:
''
}}
</view>
{{
cx
.
name
}}
</view>
{{
cx
.
name
}}
</view>
<!-- 新增上课日期 -->
<view
v-if=
"u.TenantId==27"
>
<view
v-if=
"u.TenantId==27&&cx.edudata.ClassTime"
class=
"have"
>
{{
cx
.
edudata
.
ClassTime
}}
</view>
<!-- 新增次数 -->
<div
v-if=
"cx.edudata.ClassNum&&u.TenantId==27"
class=
"have"
>
{{
cx
.
edudata
.
ClassNum
}}
次
</div>
<!-- 新增老师相片资料 -->
<view
class=
"price-box"
>
<view
class=
"portrait-box"
>
<image
v-if=
"cx.edudata.TeacherIcon"
class=
"portrait"
mode=
"aspectFit"
:src=
"cx.edudata.TeacherIcon"
/>
<view
v-if=
"cx.edudata.TeacherName"
class=
"sell2"
>
{{
cx
.
edudata
.
TeacherName
}}
</view>
<!-- 新增上课日期 -->
<view
v-if=
"u.TenantId==27"
class=
"rqi"
>
<view
v-if=
"u.TenantId==27&&cx.edudata.ClassTime"
class=
"have"
>
{{
cx
.
edudata
.
ClassTime
}}
</view>
<!-- 新增次数 -->
<view
v-if=
"cx.edudata.ClassNum&&u.TenantId==27"
class=
"have"
>
{{
cx
.
edudata
.
ClassNum
}}
次
</view>
<view
class=
"good-info2"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
cx
.
price_content
}}
</view>
<!-- 新增老师相片资料 -->
<view
class=
"price-box"
>
<view
class=
"portrait-box"
>
<image
v-if=
"cx.edudata.TeacherIcon"
class=
"portrait"
mode=
"aspectFit"
:src=
"cx.edudata.TeacherIcon"
/>
<view
v-if=
"cx.edudata.TeacherName"
class=
"sell2"
>
{{
cx
.
edudata
.
TeacherName
}}
</view>
</view>
<view
class=
"good-info2"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
cx
.
price_content
}}
</view>
</view>
</view>
</view>
</view>
<!-- 新增上课日期结束 -->
<view
class=
"good-info"
v-if=
"u.TenantId!=27"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
cx
.
price_content
}}
</view>
<view
class=
"sell"
>
{{
cx
.
sales
}}
</view>
<!-- 新增上课日期结束 -->
<view
class=
"good-info"
v-if=
"u.TenantId!=27"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
cx
.
price_content
}}
</view>
<view
class=
"sell"
>
{{
cx
.
sales
}}
</view>
</view>
</view>
</view>
</u-col>
</u-col>
</view>
</u-row>
<u-divider
v-if=
"isover"
bg-color=
"#F5f5f5"
:margin-top=
"20"
:margin-bottom=
"20"
>
没有更多商品了
</u-divider>
...
...
@@ -222,6 +224,15 @@
</
script
>
<
style
>
.layout
{
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
}
.rqi
{
/* background: red; */
/* width: 130px; */
}
.good-info2
{
display
:
flex
;
margin
:
0px
10px
;
...
...
@@ -233,6 +244,7 @@
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
height
:
60
rpx
;
}
.portrait-box
{
display
:
flex
;
...
...
@@ -281,6 +293,7 @@
border-radius
:
10px
;
overflow
:
hidden
;
margin-bottom
:
10px
;
width
:
345
rpx
;
}
.catstyle3
.good
.good-img
{
...
...
components/goods/goodsku2.vue
View file @
ee9fdc4b
...
...
@@ -713,5 +713,6 @@
align-items
:
center
;
border-top
:
1px
solid
#eee
;
padding
:
5px
10px
;
margin-top
:
20
rpx
;
}
</
style
>
pages/goods/goods.vue
View file @
ee9fdc4b
<
template
>
<view
class=
"goods"
>
<view
class=
"u-skeleton"
v-if=
"isExsitGoods"
>
<view
class=
"u-skeleton-rect"
>
<!--
<u-swiper
<view
class=
"goods"
>
<view
class=
"u-skeleton"
v-if=
"isExsitGoods"
>
<view
class=
"u-skeleton-rect"
>
<!--
<u-swiper
:list=
"g.pic_url"
height=
"100"
unit=
"vw"
...
...
@@ -11,1270 +11,1479 @@
:border-radius=
"0"
@
click=
"previewImage"
></u-swiper>
-->
<swiper
indicator-dots
:autoplay=
"false"
:interval=
"1000"
style=
"height:100vw;"
>
<block
v-for=
"(item, index) in g.pic_url"
:key=
"index"
>
<swiper-item>
<video
@
click=
"startPlay(item)"
style=
"width:100%;height:100%"
id=
"myVideo"
v-if=
"item.type==1"
:src=
"item.pic_url"
:autoplay=
"false"
loop
muted
show-play-btn
:enable-progress-gesture=
"true"
:controls=
"true"
:show-progress=
"true"
:show-mute-btn=
"true"
objectFit=
"cover"
></video>
<image
@
click=
"previewImage(index)"
style=
"width:100%;height:100%;"
v-else
:src=
"item.pic_url"
mode=
"aspectFill"
></image>
</swiper-item>
</block>
</swiper>
<!-- TODO 分销价格未做 is_share_price -->
<view
class=
"is_share"
v-if=
"g.share > 0 && hideshare == false&&setting.is_show_korea==0"
style=
"top:240px;"
>
<image
src=
"@/static/images/icon/WechatIMG424.png"
style=
"width: 20px; margin-left: 12px; opacity: 1;height: auto;"
mode=
"widthFix"
/>
<view
style=
"
<swiper
indicator-dots
:autoplay=
"false"
:interval=
"1000"
style=
"height:100vw;"
>
<block
v-for=
"(item, index) in g.pic_url"
:key=
"index"
>
<swiper-item>
<video
@
click=
"startPlay(item)"
style=
"width:100%;height:100%"
id=
"myVideo"
v-if=
"item.type==1"
:src=
"item.pic_url"
:autoplay=
"false"
loop
muted
show-play-btn
:enable-progress-gesture=
"true"
:controls=
"true"
:show-progress=
"true"
:show-mute-btn=
"true"
objectFit=
"cover"
></video>
<image
@
click=
"previewImage(index)"
style=
"width:100%;height:100%;"
v-else
:src=
"item.pic_url"
mode=
"aspectFill"
></image>
</swiper-item>
</block>
</swiper>
<!-- TODO 分销价格未做 is_share_price -->
<view
class=
"is_share"
v-if=
"g.share > 0 && hideshare == false&&setting.is_show_korea==0"
style=
"top:240px;"
>
<image
src=
"@/static/images/icon/WechatIMG424.png"
style=
"width: 20px; margin-left: 12px; opacity: 1;height: auto;"
mode=
"widthFix"
/>
<view
style=
"
display: flex;
flex-direction: column;
margin-left: 8px;
font-size: 11px;
color: #fff;
opacity: 1;
"
>
<Text>
即刻分享赚
</Text>
<Text>
¥
{{
g
.
share
}}
</Text>
</view>
<u-icon
name=
"close"
style=
'position: absolute;right: 4px;top: 12.5px;z-index: 999;'
color=
"#fff"
size=
"40"
@
click=
'goclose'
></u-icon>
</view>
<view
class=
"is_share"
v-if=
"g.myBuyCommission > 0 && hideshare == false&&setting.is_show_korea==0"
>
<image
src=
"@/static/images/icon/WechatIMG424.png"
style=
"width: 20px; margin-left: 12px; opacity: 1;height: auto;"
mode=
"widthFix"
/>
<view
style=
"
"
>
<Text>
即刻分享赚
</Text>
<Text>
¥
{{
g
.
share
}}
</Text>
</view>
<u-icon
name=
"close"
style=
'position: absolute;right: 4px;top: 12.5px;z-index: 999;'
color=
"#fff"
size=
"40"
@
click=
'goclose'
></u-icon>
</view>
<view
class=
"is_share"
v-if=
"g.myBuyCommission > 0 && hideshare == false&&setting.is_show_korea==0"
>
<image
src=
"@/static/images/icon/WechatIMG424.png"
style=
"width: 20px; margin-left: 12px; opacity: 1;height: auto;"
mode=
"widthFix"
/>
<view
style=
"
display: flex;
flex-direction: column;
margin-left: 8px;
font-size: 11px;
color: #fff;
opacity: 1;
"
>
<Text>
即刻购买省
</Text>
<Text>
¥
{{
g
.
myBuyCommission
}}
</Text>
</view>
<u-icon
v-if=
'g.share ==0'
name=
"close"
style=
'position: absolute;right: 4px;top: 12.5px;'
color=
"#fff"
size=
"40"
@
click=
'hideshare=true'
></u-icon>
</view>
</view>
<view
class=
"g-info"
>
<view
class=
"g-name u-skeleton-rect"
>
<view
v-if=
"g.marketingLogo.iswords&&g.marketingLogo.iswords==1 && g.marketingLogo.words!=''"
class=
"Logo"
:style=
"
{color: g.marketingLogo.wordsColor,
background:g.marketingLogo.wordsBack ,}"
>
{{
g
.
marketingLogo
.
words
}}
</view>
<image
v-if=
"g.marketingLogo.iswords&&g.marketingLogo.iswords==2&& g.marketingLogo.ico!=''"
mode=
"heightFix"
:src=
"g.marketingLogo.ico"
style=
" height: 12px;margin-right: 5px"
/>
{{
g
.
name
}}
</view>
<view
class=
"g-price-box"
v-if=
"setting.is_show_korea==0"
>
<view
class=
"left"
>
<view
class=
"price u-skeleton-rect"
:style=
"
{ color: mc }">
<u-tag
v-if=
'g.price_min!=g.original_price'
text=
"心动价"
mode=
"light"
size=
'mini'
type=
"error"
style=
'font-size: 12px;font-family: aa;margin-right: 10px;'
/>
<text
class=
"small"
>
¥
</text>
<text
class=
"numfont"
v-if=
"g.form_id!=1"
>
{{
g
.
price_min
==
g
.
price_max
?
g
.
price_min
:
g
.
price_min
+
'-'
+
g
.
price_max
}}
</text>
<text
class=
"numfont"
v-if=
"g.form_id==1"
>
{{
g
.
price_min
}}
</text>
<text
class=
"small"
v-if=
"g.form_id==1"
>
起
</text>
</view>
<!-- TODO is_common_user_member_price 普通用户会员价 -->
<!-- TODO is_member_user_member_price 会员用户会员价 -->
<view
class=
"sell u-skeleton-rect"
>
<text
class=
"oprice"
v-if=
"setting.is_underline_price == 1"
>
原价:
{{
g
.
original_price
}}
</text>
<text
v-if=
"setting.is_sales == 1"
>
已售出
{{
g
.
sales
}}{{
g
.
unit
}}
</text>
</view>
</view>
<view
class=
"right u-skeleton-rect"
@
click=
"openShare"
v-if=
"isAllowShare == 1"
>
<image
src=
"@/static/images/icon/icon-share.png"
class=
"share-icon"
/>
<text>
分享
</text>
</view>
</view>
<template
v-if=
"setting.is_show_korea==1"
>
<view
style=
"height:50px;margin:10px 10px 0 0;display:none;"
>
<view
style=
"float:right;"
@
click=
"openShare"
v-if=
"isAllowShare == 1"
>
<image
src=
"@/static/images/icon/icon-share.png"
style=
"width:20px;height:20px;"
class=
"share-icon"
/>
"
>
<Text>
即刻购买省
</Text>
<Text>
¥
{{
g
.
myBuyCommission
}}
</Text>
</view>
<u-icon
v-if=
'g.share ==0'
name=
"close"
style=
'position: absolute;right: 4px;top: 12.5px;'
color=
"#fff"
size=
"40"
@
click=
'hideshare=true'
></u-icon>
</view>
</view>
<view
class=
"koarea_Country"
style=
"display:none;"
>
<view
style=
"flex: 1;text-align: center;border-right:1px solid #F2F3F6;"
>
<text
v-if=
"g.goods_country"
>
{{
g
.
goods_country
}}
</text>
<!-- 非id27开始 -->
<view
class=
"g-info"
v-if=
"u.TenantId!=27"
>
<view
class=
"g-name u-skeleton-rect"
>
<view
v-if=
"g.marketingLogo.iswords&&g.marketingLogo.iswords==1 && g.marketingLogo.words!=''"
class=
"Logo"
:style=
"
{color: g.marketingLogo.wordsColor,
background:g.marketingLogo.wordsBack ,}">
{{
g
.
marketingLogo
.
words
}}
</view>
<image
v-if=
"g.marketingLogo.iswords&&g.marketingLogo.iswords==2&& g.marketingLogo.ico!=''"
mode=
"heightFix"
:src=
"g.marketingLogo.ico"
style=
" height: 12px;margin-right: 5px"
/>
{{
g
.
name
}}
</view>
<view
style=
"flex: 1;text-align: center;border-right:1px solid #F2F3F6;"
>
无
</view>
<view
style=
"flex: 1;text-align: center;"
v-if=
"g.cats&&g.cats.length>0"
>
{{
g
.
cats
[
0
].
CategoryName
}}
</view>
</view>
<view
style=
"text-align: left;padding:15px 0;border-bottom:1px solid #F2F3F6;display:none;"
>
卖点:
<text
v-if=
"g.subname"
>
{{
g
.
subname
}}
</text>
<view
class=
"g-price-box"
v-if=
"setting.is_show_korea==0"
>
<view
class=
"left"
>
<view
class=
"price u-skeleton-rect"
:style=
"
{ color: mc }">
<u-tag
v-if=
'g.price_min!=g.original_price'
text=
"心动价"
mode=
"light"
size=
'mini'
type=
"error"
style=
'font-size: 12px;font-family: aa;margin-right: 10px;'
/>
<text
class=
"small"
>
¥
</text>
<text
class=
"numfont"
v-if=
"g.form_id!=1"
>
{{
g
.
price_min
==
g
.
price_max
?
g
.
price_min
:
g
.
price_min
+
'-'
+
g
.
price_max
}}
</text>
<text
class=
"numfont"
v-if=
"g.form_id==1"
>
{{
g
.
price_min
}}
</text>
<text
class=
"small"
v-if=
"g.form_id==1"
>
起
</text>
</view>
<!-- TODO is_common_user_member_price 普通用户会员价 -->
<!-- TODO is_member_user_member_price 会员用户会员价 -->
<view
class=
"sell u-skeleton-rect"
>
<text
class=
"oprice"
v-if=
"setting.is_underline_price == 1"
>
原价:
{{
g
.
original_price
}}
</text>
<text
v-if=
"setting.is_sales == 1"
>
已售出
{{
g
.
sales
}}{{
g
.
unit
}}
</text>
</view>
</view>
<view
class=
"right u-skeleton-rect"
@
click=
"openShare"
v-if=
"isAllowShare == 1"
>
<image
src=
"@/static/images/icon/icon-share.png"
class=
"share-icon"
/>
<text>
分享
</text>
</view>
</view>
<template
v-if=
"setting.is_show_korea==1"
>
<view
style=
"height:50px;margin:10px 10px 0 0;display:none;"
>
<view
style=
"float:right;"
@
click=
"openShare"
v-if=
"isAllowShare == 1"
>
<image
src=
"@/static/images/icon/icon-share.png"
style=
"width:20px;height:20px;"
class=
"share-icon"
/>
</view>
</view>
<view
class=
"koarea_Country"
style=
"display:none;"
>
<view
style=
"flex: 1;text-align: center;border-right:1px solid #F2F3F6;"
>
<text
v-if=
"g.goods_country"
>
{{
g
.
goods_country
}}
</text>
</view>
<view
style=
"flex: 1;text-align: center;border-right:1px solid #F2F3F6;"
>
无
</view>
<view
style=
"flex: 1;text-align: center;"
v-if=
"g.cats&&g.cats.length>0"
>
{{
g
.
cats
[
0
].
CategoryName
}}
</view>
</view>
<view
style=
"text-align: left;padding:15px 0;border-bottom:1px solid #F2F3F6;display:none;"
>
卖点:
<text
v-if=
"g.subname"
>
{{
g
.
subname
}}
</text>
</view>
<view
style=
"text-align: left;border-bottom:1px solid #F2F3F6;padding:15px 0;display:flex;font-size:13px;color:#737373;"
>
<u-icon
name=
"location"
color=
"#D4D4D4"
size=
"30"
></u-icon>
地址:
<text
v-if=
"g.fatcode"
>
{{
g
.
fatcode
}}
</text>
</view>
<view
style=
"display:flex;text-align: left;padding:10px;background-color: #F3F3F3;color:#404040;min-height:100px;line-height: 25px;font-size:13px;"
>
<text
style=
"flex-shrink: 0;width:45px;"
>
简介:
</text><text
v-if=
"g.goodsurl"
>
{{
g
.
goodsurl
}}
</text>
</view>
</
template
>
</view>
<view
style=
"text-align: left;border-bottom:1px solid #F2F3F6;padding:15px 0;display:flex;font-size:13px;color:#737373;"
>
<u-icon
name=
"location"
color=
"#D4D4D4"
size=
"30"
></u-icon>
地址:
<text
v-if=
"g.fatcode"
>
{{
g
.
fatcode
}}
</text>
<!-- 非id27结束 -->
<!-- id27开始 -->
<view
class=
"g-info"
v-if=
"u.TenantId==27"
style=
"position: relative;"
>
<!-- 标题 -->
<view
class=
"g-name u-skeleton-rect"
style=
"height: 60rpx;"
>
<view
v-if=
"g.marketingLogo.iswords&&g.marketingLogo.iswords==1 && g.marketingLogo.words!=''"
class=
"Logo"
:style=
"{color: g.marketingLogo.wordsColor,
background:g.marketingLogo.wordsBack ,}"
>
{{g.marketingLogo.words}}
</view>
{{ g.name }}
</view>
<!-- 报名时间次数 -->
<view
class=
"sign-up"
v-if=
'g.edu_data'
>
<text
v-if=
"g.edu_data.EndOrderTime"
>
{{g.edu_data.EndOrderTime}}报名截止
</text>
<text
v-if=
"g.edu_data.EndOrderTime"
class=
"sign-dian"
></text>
<text
v-if=
"g.edu_data.ClassNum"
>
{{g.edu_data.ClassNum}}次
</text>
</view>
<!-- 价格 -->
<view
:style=
"{ color: mc }"
class=
"the-price"
>
<text
class=
"small22"
>
¥
</text>
<text
class=
"numfont22"
v-if=
"g.form_id!=1&&!g.edu_data.BookPrice"
>
{{ g.price_min == g.price_max ? g.price_min : g.price_min + '-' + g.price_max }}
</text>
<text
class=
"numfont22"
v-if=
"g.form_id!=1&&g.edu_data.BookPrice"
>
{{ g.price_min == g.price_max ? parseFloat(g.price_min)+parseFloat(g.edu_data.BookPrice) : g.price_min + '-' + g.price_max }}
</text>
<!-- <text class="numfont" v-if="g.form_id==1">
{{ g.price_min }}
</text> -->
</view>
<!-- top切换 -->
<view
class=
"top-switch"
id=
"productId"
>
<u-tabs
:list=
"list"
:is-scroll=
"false"
:current=
"current"
inactive-color=
'#999'
:active-color=
'mc'
@
change=
"change"
></u-tabs>
</view>
<!-- 内容1 -->
<view
v-if=
"current==0"
>
<view
class=
"introduce-box"
>
<text
class=
"introduce"
:style=
"{ 'background-color': mc }"
></text>
<text
class=
"introduce2"
>
老师介绍
</text>
</view>
<view
class=
"teacher"
>
<image
src=
"@/static/images/icon/icon-share.png"
style=
"width:20px;height:30px;"
class=
"share-icon"
/>
<view
class=
"teacher2"
>
<view
class=
"teacher3"
>
<view
class=
"teacher4"
>
张鑫生
</view>
<view
class=
"teacher5"
>
高级高级高级高级高级高级高级高级高级
</view>
</view>
<view
class=
"teacher4"
>
<u-icon
name=
"arrow"
:size=
"32"
color=
"#111"
></u-icon>
</view>
</view>
</view>
</view>
<!-- 内容2 -->
<view
v-if=
"current==1"
>
<view
class=
"introduce-box"
style=
"margin-bottom: 20rpx;"
>
<text
class=
"introduce"
:style=
"{ 'background-color': mc }"
></text>
<text
class=
"introduce2"
>
详情介绍
</text>
</view>
<view>
富文本
</view>
</view>
<!-- top3 -->
<view
iew
v-if=
"current==2"
>
<view
class=
"introduce-box"
>
<text
class=
"introduce"
:style=
"{ 'background-color': mc }"
></text>
<text
class=
"introduce2"
>
上课信息
</text>
</view>
<view>
<view
class=
"information-list"
v-if=
'g.edu_data.ClassNum'
>
<text>
上课次数
</text>
<text
class=
"information-list2"
>
{{g.edu_data.ClassNum}}次
</text>
</view>
<view
class=
"information-list"
v-if=
'g.edu_data.ClassAddress'
>
<text>
上课地点
</text>
<text
class=
"information-list2"
>
{{g.edu_data.ClassAddress}}
</text>
</view>
<view
class=
"information-list"
v-if=
'g.edu_data.ClassTime'
>
<text>
上课时间
</text>
<text
class=
"information-list2"
>
{{g.edu_data.ClassTime}}
</text>
</view>
<view
class=
"information-list"
v-if=
'g.edu_data.OpenTime'
>
<text>
开班日期
</text>
<text
class=
"information-list2"
>
{{g.edu_data.OpenTime}}
</text>
</view>
<view
class=
"information-list"
v-if=
'g.edu_data.EndClassDate'
>
<text>
结业日期
</text>
<text
class=
"information-list2"
>
{{g.edu_data.EndClassDate}}
</text>
</view>
<view
class=
"information-list"
v-if=
'g.edu_data.ClassPersion'
>
<text>
限招人数
</text>
<text
class=
"information-list2"
>
{{g.edu_data.ClassPersion}}人
</text>
</view>
<view
class=
"information-list"
v-if=
'g.edu_data.TeacherName'
>
<text>
班主任
</text>
<text
class=
"information-list2"
>
{{g.edu_data.TeacherName}}
</text>
</view>
<view
class=
"information-list"
v-if=
'g.edu_data.TeacherName'
>
<text>
上课老师
</text>
<text
class=
"information-list2"
>
{{g.edu_data.TeacherName}}
</text>
</view>
</view>
</view>
<!-- 切换结束 -->
<!-- 回到顶部 -->
<!-- <view class="the-top" @click="counter">
<u-icon name="arrow" :size="32" color="#111"></u-icon>
</view> -->
</view>
<view
style=
"display:flex;text-align: left;padding:10px;background-color: #F3F3F3;color:#404040;min-height:100px;line-height: 25px;font-size:13px;"
>
<text
style=
"flex-shrink: 0;width:45px;"
>
简介:
</text><text
v-if=
"g.goodsurl"
>
{{
g
.
goodsurl
}}
</text>
<!-- id27结束 -->
<view
class=
"sku-box u-skeleton-rect"
style=
"margin: 0;padding: 10px;"
v-if=
"g.friendUrl!=null && g.friendUrl!=''&&setting.is_show_korea==0 &&u.TenantId!=27"
@
click=
"goCoiling(g.friendUrl)"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/goodsCoiling.png"
style=
"width: 100%;height: 68px;"
/>
</view>
</
template
>
</view>
<view
class=
"sku-box u-skeleton-rect"
style=
"margin: 0;padding: 10px;"
v-if=
"g.friendUrl!=null && g.friendUrl!=''&&setting.is_show_korea==0"
@
click=
"goCoiling(g.friendUrl)"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/goodsCoiling.png"
style=
"width: 100%;height: 68px;"
/>
</view>
<view
class=
"sku-box u-skeleton-rect"
style=
"align-items: flex-start;"
v-if=
"(g.goods_marketing_award.integral.title != '')|| (g.goods_marketing_award.PresentFXGradeMsg != '')|| g.freeShippingName != null && g.freeShippingName != '' && (g.fullMoneyPinkage > 0 || g.fullNumPinkage > 0)"
>
<view
class=
"label"
style=
"margin-top: 5px;"
>
活动
</view>
<view
class=
"content"
style=
"display: flex;flex-direction: column"
>
<view
style=
"display: flex;flex-direction: row;align-items: center;margin-bottom: 5px;"
v-if=
"g.goods_marketing_award.integral.title != ''"
>
<u-tag
text=
"送积分"
type=
"error"
/>
<text
style=
"margin-left: 5px; font-size: 12px;"
>
{{ g.goods_marketing_award.integral.title }}
</text>
</view>
<view
style=
"display: flex;flex-direction: row;align-items: center"
v-if=
"g.goods_marketing_award.PresentFXGradeMsg != ''"
@
click=
"goVIP"
>
<u-tag
text=
"送会员"
type=
"error"
/>
<text
style=
"margin-left: 5px; font-size: 12px;"
>
{{ g.goods_marketing_award.PresentFXGradeMsg }}
</text>
</view>
<view
style=
"display: flex;flex-direction: row;align-items: center;margin-top: 5px;"
@
click=
"goUrl(g.FreeShippingUrl)"
v-if=
"g.freeShippingName != null && g.freeShippingName != '' && (g.fullMoneyPinkage > 0 || g.fullNumPinkage > 0)"
>
<view
style=
"color: #fa3534;background: #fef0f0;padding: 12rpx 22rpx; font-size: 22rpx;margin-right: 5px;border: 1px solid #fde2e2;border-radius: 6rpx;"
>
{{ g.freeShippingName != null ? g.freeShippingName : '' }}
</view>
{{ g.fullMoneyPinkage > 0
&&
g.fullNumPinkage == 0 ? g.fullMoneyPinkage + '元包邮' : '' }}
{{ g.fullMoneyPinkage == 0
&&
g.fullNumPinkage > 0 ? g.fullNumPinkage + '件包邮' : '' }}
</view>
<!-- <view style="margin-top: 5px;" v-if="
<view
class=
"sku-box u-skeleton-rect"
style=
"align-items: flex-start;"
v-if=
"(g.goods_marketing_award.integral.title != '')|| (g.goods_marketing_award.PresentFXGradeMsg != '')|| g.freeShippingName != null && g.freeShippingName != '' && (g.fullMoneyPinkage > 0 || g.fullNumPinkage > 0)&&u.TenantId!=27"
>
<view
class=
"label"
style=
"margin-top: 5px;"
>
活动
</view>
<view
class=
"content"
style=
"display: flex;flex-direction: column"
>
<view
style=
"display: flex;flex-direction: row;align-items: center;margin-bottom: 5px;"
v-if=
"g.goods_marketing_award.integral.title != ''"
>
<u-tag
text=
"送积分"
type=
"error"
/>
<text
style=
"margin-left: 5px; font-size: 12px;"
>
{{ g.goods_marketing_award.integral.title }}
</text>
</view>
<view
style=
"display: flex;flex-direction: row;align-items: center"
v-if=
"g.goods_marketing_award.PresentFXGradeMsg != ''"
@
click=
"goVIP"
>
<u-tag
text=
"送会员"
type=
"error"
/>
<text
style=
"margin-left: 5px; font-size: 12px;"
>
{{ g.goods_marketing_award.PresentFXGradeMsg }}
</text>
</view>
<view
style=
"display: flex;flex-direction: row;align-items: center;margin-top: 5px;"
@
click=
"goUrl(g.FreeShippingUrl)"
v-if=
"g.freeShippingName != null && g.freeShippingName != '' && (g.fullMoneyPinkage > 0 || g.fullNumPinkage > 0)"
>
<view
style=
"color: #fa3534;background: #fef0f0;padding: 12rpx 22rpx; font-size: 22rpx;margin-right: 5px;border: 1px solid #fde2e2;border-radius: 6rpx;"
>
{{ g.freeShippingName != null ? g.freeShippingName : '' }}
</view>
{{ g.fullMoneyPinkage > 0
&&
g.fullNumPinkage == 0 ? g.fullMoneyPinkage + '元包邮' : '' }}
{{ g.fullMoneyPinkage == 0
&&
g.fullNumPinkage > 0 ? g.fullNumPinkage + '件包邮' : '' }}
</view>
<!-- <view style="margin-top: 5px;" v-if="
g.goods_marketing_award.PresentFXGradeMsg == ''
&& g.goods_marketing_award.integral.title == '' &&
g.freeShippingName!=null && g.freeShippingName !='' &&(g.fullMoneyPinkage == 0 && g.fullNumPinkage==0)
">
<text>暂无活动</text>
</view>-->
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
style=
"align-items: flex-start;"
v-if=
"sku.length > 0&&setting.is_show_korea==0"
>
<view
class=
"label"
>
选择
</view>
<view
class=
"content"
>
<view
class=
"sku-chosen"
@
click=
"chosenSku"
>
<view
class=
"sku"
>
{{ currentSku.attr_list.length > 0 ? '已' : '请' }}选择 {{ sku }}
</view>
<view
class=
"arrow"
>
<u-icon
name=
"arrow"
:size=
"32"
color=
"#111"
></u-icon>
</view>
</view>
<view
class=
"suk-item"
style=
"flex-wrap: wrap;"
>
<
template
v-if=
"skuimage.length > 0"
>
<view
v-for=
"(x, i) in skuimage"
class=
"item img"
style=
"margin-bottom: 5px;"
:key=
"i"
>
<image
:src=
"x"
style=
"width: 100%; height: 100%;"
/>
</view>
<view
class=
"item"
v-if=
"g.attr_groups[0].attr_list.length > 1"
>
共
{{
g
.
attr_groups
[
0
].
attr_list
.
length
}}
种
{{
g
.
attr_groups
[
0
].
attr_group_name
}}
可选
</view>
</
template
>
<
template
v-else
>
<template
v-for=
"(x, i) in g.attr_groups[0].attr_list"
>
<view
class=
"item"
v-if=
"i
<
5
"
:key=
"i"
style=
"margin-bottom: 5px;"
>
{{
x
.
attr_name
}}
</view>
</
template
>
<view
class=
"item"
v-if=
"g.attr_groups[0].attr_list.length > 1"
>
共{{ g.attr_groups[0].attr_list.length }}种{{ g.attr_groups[0].attr_group_name }}可选
</view>
</template>
</view>
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
v-if=
"g.sendArea&&g.sendArea!=''"
>
<view
class=
"label"
>
发货地
</view>
<view
class=
"content"
>
{{g.sendArea }}
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
v-if=
"setting.is_express == '1'&&setting.is_show_korea==0"
>
<view
class=
"label"
>
快递
</view>
<view
class=
"content"
>
{{ g.express == '' ? '免运费' : '¥' + g.express }}
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
style=
"margin-top: -10;"
v-if=
"g.goods_marketing.shipping != ''"
>
<view
class=
"label"
>
包邮
</view>
<view
class=
"content"
>
{{ g.goods_marketing.shipping }}
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
style=
"margin-top: -10;"
v-if=
"g.goods_marketing.limit != ''&&setting.is_show_korea==0"
>
<view
class=
"label"
>
限购
</view>
<view
class=
"content"
>
{{ g.goods_marketing.limit }}
</view>
</view>
<!-- 优惠 -->
<view
class=
"goods-Discount"
v-if=
"g.goodsPreferentialList.length>0"
>
<view
class=
"discount-left"
>
优惠
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
style=
"align-items: flex-start;"
v-if=
"sku.length > 0&&setting.is_show_korea==0&&u.TenantId!=27"
>
<view
class=
"label"
>
选择
</view>
<view
class=
"content"
>
<view
class=
"sku-chosen"
@
click=
"chosenSku"
>
<view
class=
"sku"
>
{{ currentSku.attr_list.length > 0 ? '已' : '请' }}选择 {{ sku }}
</view>
<view
class=
"arrow"
>
<u-icon
name=
"arrow"
:size=
"32"
color=
"#111"
></u-icon>
</view>
</view>
<view
class=
"suk-item"
style=
"flex-wrap: wrap;"
>
<
template
v-if=
"skuimage.length > 0"
>
<view
v-for=
"(x, i) in skuimage"
class=
"item img"
style=
"margin-bottom: 5px;"
:key=
"i"
>
<image
:src=
"x"
style=
"width: 100%; height: 100%;"
/>
</view>
<view
class=
"item"
v-if=
"g.attr_groups[0].attr_list.length > 1"
>
共
{{
g
.
attr_groups
[
0
].
attr_list
.
length
}}
种
{{
g
.
attr_groups
[
0
].
attr_group_name
}}
可选
</view>
</
template
>
<
template
v-else
>
<template
v-for=
"(x, i) in g.attr_groups[0].attr_list"
>
<view
class=
"item"
v-if=
"i
<
5
"
:key=
"i"
style=
"margin-bottom: 5px;"
>
{{
x
.
attr_name
}}
</view>
</
template
>
<view
class=
"item"
v-if=
"g.attr_groups[0].attr_list.length > 1"
>
共{{ g.attr_groups[0].attr_list.length }}种{{ g.attr_groups[0].attr_group_name }}可选
</view>
</template>
</view>
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
v-if=
"g.sendArea&&g.sendArea!=''&&u.TenantId!=27"
>
<view
class=
"label"
>
发货地
</view>
<view
class=
"content"
>
{{g.sendArea }}
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
v-if=
"setting.is_express == '1'&&setting.is_show_korea==0&&u.TenantId!=27"
>
<view
class=
"label"
>
快递
</view>
<view
class=
"content"
>
{{ g.express == '' ? '免运费' : '¥' + g.express }}
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
style=
"margin-top: -10;"
v-if=
"g.goods_marketing.shipping != ''&&u.TenantId!=27"
>
<view
class=
"label"
>
包邮
</view>
<view
class=
"content"
>
{{ g.goods_marketing.shipping }}
</view>
</view>
<view
class=
"discount-right"
>
<view
v-for=
"(item,index) in g.goodsPreferentialList"
:key=
"index"
class=
"discount-item"
>
<view
class=
"discount-type"
>
{{item.PriceDiscountTypeStr.slice(0,2)}}
<view
class=
"sku-box u-skeleton-rect"
style=
"margin-top: -10;"
v-if=
"g.goods_marketing.limit != ''&&setting.is_show_korea==0&&u.TenantId!=27"
>
<view
class=
"label"
>
限购
</view>
<view
class=
"content"
>
{{ g.goods_marketing.limit }}
</view>
</view>
<!-- 优惠 -->
<view
class=
"goods-Discount"
v-if=
"g.goodsPreferentialList.length>0"
>
<view
class=
"discount-left"
>
优惠
</view>
<view
class=
"discount-right"
>
<view
v-for=
"(item,index) in g.goodsPreferentialList"
:key=
"index"
class=
"discount-item"
>
<view
class=
"discount-type"
>
{{item.PriceDiscountTypeStr.slice(0,2)}}
</view>
{{item.PriceDiscountTypeStr}}{{item.PriceMoney}}%
</view>
{{item.PriceDiscountTypeStr}}{{item.PriceMoney}}%
</view>
</view>
</view>
<view
class=
"sku-box u-skeleton-rect"
v-if=
"comments.length == 0 && setting.is_comment == 1&&setting.is_show_korea==0"
>
<view
class=
"label"
>
暂无评论信息
</view>
</view>
<view
class=
"comment"
v-if=
"comments.length > 0"
>
<view
class=
"chead"
>
<u-section
:bold=
"false"
:sub-color=
"secondary"
:show-split=
"false"
:title=
"`商品评价(${comments.length})`"
sub-title=
"查看更多"
@
click=
"clickCommentHandler"
font-size=
"24"
></u-section>
</view>
<view
class=
"content"
>
<view
class=
"u-box"
>
<view
class=
"user"
>
<u-avatar
:src=
"comments[0].UserPhotoPath"
:size=
"50"
></u-avatar>
<text
style=
"margin-left: 10px;"
>
{{ comments[0].UserName }}
</text>
<u-rate
:current=
"comments[0].CommentScore"
active-color=
"#FA3534"
inactive-color=
"#b2b2b2"
active-icon=
"star"
inactive-icon=
"star-o"
size=
"20"
:disabled=
"true"
></u-rate>
</view>
<view
class=
"timer"
>
{{ comments[0].CreateDate }}
</view>
</view>
<view
class=
"ucontent"
>
{{ comments[0].Content }}
</view>
</view>
</view>
<u-divider
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"transparent"
>
商品详情
</u-divider>
<view
class=
"details"
>
<h-parse
v-if=
"AppletID!=5"
:content=
"detailContent"
@
navigate=
"clickDescription"
></h-parse>
<!-- 甲鹤等于5 -->
<rich-text
v-if=
"AppletID==5"
:nodes=
"detailContent"
></rich-text>
</view>
<
template
v-if=
"setting.is_show_korea==1"
>
<view
style=
"width:100%;height:1px;border-top:1px solid #FFFFFF;margin:20px 0;"
></view>
<view
class=
"commontList"
v-for=
"(item,index) in compentList"
:key=
"index"
>
<view>
<img
:src=
"item.UserPhoto"
style=
"width:30px;height:30px;border-radius: 50%;"
alt=
""
>
</view>
<view
style=
"width:100%;margin-left:10px;"
>
<view
style=
"color:#000000;font-size:14px;margin-bottom:5px;"
>
{{
item
.
UserName
}}
</view>
<view
style=
"color:#909399;font-size:13px;"
>
{{
item
.
Content
}}
</view>
</view>
<view
@
click=
"delCompent(item)"
v-if=
"item.UserId==u.UserId"
>
<u-icon
name=
"delete"
color=
"red"
size=
"40"
></u-icon>
</view>
</view>
<view
v-if=
"compentTotal>1"
style=
"display: flex;justify-content: end;float:right;margin-bottom:20px;"
>
<view
class=
"fenyeBtn"
v-if=
"comListMsg.pageIndex>1"
@
click=
"goBefore"
>
上一页
</view>
<view
class=
"fenyeBtn"
v-if=
"comListMsg.pageIndex
<compentTotal
"
@
click=
"goAfter"
>
下一页
</view>
</view>
<view
style=
"padding:10px;margin-top:30px;"
>
<view
style=
"margin:10px 0;"
>
留言(至少填写10个文字)
</view>
<view>
<textarea
placeholder=
"请输入评论信息"
style=
"width: 94.5%;height: 100px;border:1px solid #d1d1d1;
<view
class=
"sku-box u-skeleton-rect"
v-if=
"comments.length == 0 && setting.is_comment == 1&&setting.is_show_korea==0&&u.TenantId!=27"
>
<view
class=
"label"
>
暂无评论信息
</view>
</view>
<view
class=
"comment"
v-if=
"comments.length > 0"
>
<view
class=
"chead"
>
<u-section
:bold=
"false"
:sub-color=
"secondary"
:show-split=
"false"
:title=
"`商品评价(${comments.length})`"
sub-title=
"查看更多"
@
click=
"clickCommentHandler"
font-size=
"24"
></u-section>
</view>
<view
class=
"content"
>
<view
class=
"u-box"
>
<view
class=
"user"
>
<u-avatar
:src=
"comments[0].UserPhotoPath"
:size=
"50"
></u-avatar>
<text
style=
"margin-left: 10px;"
>
{{ comments[0].UserName }}
</text>
<u-rate
:current=
"comments[0].CommentScore"
active-color=
"#FA3534"
inactive-color=
"#b2b2b2"
active-icon=
"star"
inactive-icon=
"star-o"
size=
"20"
:disabled=
"true"
></u-rate>
</view>
<view
class=
"timer"
>
{{ comments[0].CreateDate }}
</view>
</view>
<view
class=
"ucontent"
>
{{ comments[0].Content }}
</view>
</view>
</view>
<u-divider
v-if=
'u.TenantId!=27'
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"transparent"
>
商品详情
</u-divider>
<view
class=
"details"
v-if=
'u.TenantId!=27'
>
<h-parse
v-if=
"AppletID!=5"
:content=
"detailContent"
@
navigate=
"clickDescription"
></h-parse>
<!-- 甲鹤等于5 -->
<rich-text
v-if=
"AppletID==5"
:nodes=
"detailContent"
></rich-text>
</view>
<
template
v-if=
"setting.is_show_korea==1"
>
<view
style=
"width:100%;height:1px;border-top:1px solid #FFFFFF;margin:20px 0;"
></view>
<view
class=
"commontList"
v-for=
"(item,index) in compentList"
:key=
"index"
>
<view>
<img
:src=
"item.UserPhoto"
style=
"width:30px;height:30px;border-radius: 50%;"
alt=
""
>
</view>
<view
style=
"width:100%;margin-left:10px;"
>
<view
style=
"color:#000000;font-size:14px;margin-bottom:5px;"
>
{{
item
.
UserName
}}
</view>
<view
style=
"color:#909399;font-size:13px;"
>
{{
item
.
Content
}}
</view>
</view>
<view
@
click=
"delCompent(item)"
v-if=
"item.UserId==u.UserId"
>
<u-icon
name=
"delete"
color=
"red"
size=
"40"
></u-icon>
</view>
</view>
<view
v-if=
"compentTotal>1"
style=
"display: flex;justify-content: end;float:right;margin-bottom:20px;"
>
<view
class=
"fenyeBtn"
v-if=
"comListMsg.pageIndex>1"
@
click=
"goBefore"
>
上一页
</view>
<view
class=
"fenyeBtn"
v-if=
"comListMsg.pageIndex
<compentTotal
"
@
click=
"goAfter"
>
下一页
</view>
</view>
<view
style=
"padding:10px;margin-top:30px;"
>
<view
style=
"margin:10px 0;"
>
留言(至少填写10个文字)
</view>
<view>
<textarea
placeholder=
"请输入评论信息"
style=
"width: 94.5%;height: 100px;border:1px solid #d1d1d1;
padding:10px;background-color: #fff;"
confirm-type=
'done'
v-model=
"comentMsg.Content"
>
</textarea>
</view>
<view
class=
"goodComentBtn"
@
click=
"submitCommit"
>
提交留言
</view>
</view>
</
template
>
<u-divider
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"transparent"
>
或许你喜欢
</u-divider>
<view
style=
"width: calc(100vw - 20px); margin-left: 10px; overflow: hidden;"
>
<goodlist
:list=
"recommend"
></goodlist>
</view>
<u-skeleton
v-if=
"loading"
:loading=
"true"
:animation=
"true"
bgcolor=
"#FFF"
></u-skeleton>
<
template
v-if=
"setting&&setting.is_show_korea==0"
>
<goodsaction
v-if=
"!loading"
:good-name=
"g.name"
:cover-pic=
"g.cover_pic"
:favorite=
"g.favorite"
:good-id=
"id"
:total-stock=
"g.totalStock"
:status=
"g.status"
:formid=
'g.form_id'
@
joincar=
"joinCar"
@
buy=
"buy"
></goodsaction>
</
template
>
<
template
v-if=
"setting&&setting.is_show_korea==1"
>
<kotragoodsaction
v-if=
"!loading"
:good-name=
"g.name"
:cover-pic=
"g.pic_url"
:favorite=
"g.favorite"
:good-id=
"id"
:total-stock=
"g.totalStock"
:status=
"g.status"
@
buy=
"buy"
>
</kotragoodsaction>
</
template
>
<goodsku
v-if=
"!loading && showSku"
border-radius=
"10"
v-model=
"showSku"
:mask-close-able=
"true"
:safe-area-inset-bottom=
"true"
:good=
"g"
:option-type=
"ot"
:skued=
"currentSku"
@
close=
"closeSkuChosen"
></goodsku>
</view>
<u-empty
text=
"没有找到商品,或商品已下架"
mode=
"favor"
v-if=
"!isExsitGoods"
></u-empty>
<share
:good-id=
"id"
v-if=
"showShare"
:good-name=
"g.name"
:images=
"g.pic_url"
:advertising=
"g.advertising"
@
close=
"closeShare"
></share>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
<coupon
v-if=
"showCoupons"
:coupon-message=
"couponMessage"
@
goLook=
"goLook"
@
closeBtn=
"closeBtn"
></coupon>
</view>
</view>
<view
class=
"goodComentBtn"
@
click=
"submitCommit"
>
提交留言
</view>
</view>
</
template
>
<u-divider
v-if=
'u.TenantId!=27'
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"transparent"
>
或许你喜欢
</u-divider>
<view
v-if=
'u.TenantId!=27'
style=
"width: calc(100vw - 20px); margin-left: 10px; overflow: hidden;"
>
<goodlist
:list=
"recommend"
></goodlist>
</view>
<u-skeleton
v-if=
"loading"
:loading=
"true"
:animation=
"true"
bgcolor=
"#FFF"
></u-skeleton>
<
template
v-if=
"setting&&setting.is_show_korea==0"
>
<goodsaction
v-if=
"!loading"
:good-name=
"g.name"
:cover-pic=
"g.cover_pic"
:favorite=
"g.favorite"
:good-id=
"id"
:total-stock=
"g.totalStock"
:status=
"g.status"
:formid=
'g.form_id'
@
joincar=
"joinCar"
@
buy=
"buy"
></goodsaction>
</
template
>
<
template
v-if=
"setting&&setting.is_show_korea==1"
>
<kotragoodsaction
v-if=
"!loading"
:good-name=
"g.name"
:cover-pic=
"g.pic_url"
:favorite=
"g.favorite"
:good-id=
"id"
:total-stock=
"g.totalStock"
:status=
"g.status"
@
buy=
"buy"
>
</kotragoodsaction>
</
template
>
<goodsku
v-if=
"!loading && showSku"
border-radius=
"10"
v-model=
"showSku"
:mask-close-able=
"true"
:safe-area-inset-bottom=
"true"
:good=
"g"
:option-type=
"ot"
:skued=
"currentSku"
@
close=
"closeSkuChosen"
>
</goodsku>
</view>
<u-empty
text=
"没有找到商品,或商品已下架"
mode=
"favor"
v-if=
"!isExsitGoods"
></u-empty>
<share
:good-id=
"id"
v-if=
"showShare"
:good-name=
"g.name"
:images=
"g.pic_url"
:advertising=
"g.advertising"
@
close=
"closeShare"
></share>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
<coupon
v-if=
"showCoupons"
:coupon-message=
"couponMessage"
@
goLook=
"goLook"
@
closeBtn=
"closeBtn"
></coupon>
</view>
</template>
<
script
>
// #ifdef APP-NVUE
const
dom
=
weex
.
requireModule
(
"dom"
);
// #endif
import
goodlist
from
"@/components/goods/list"
;
import
goodsaction
from
"./components/goodsaction"
;
import
kotragoodsaction
from
"./components/kotragoodsaction"
;
//韩国馆项目引用
import
goodsku
from
"@/components/goods/goodsku"
;
import
auth
from
"@/components/auth/index"
;
import
coupon
from
"@/components/coupons/coupons"
;
import
share
from
"./components/share/share"
;
import
hParse
from
"@/components/u-parse/parse.vue"
;
export
default
{
data
()
{
return
{
id
:
0
,
loading
:
true
,
g
:
{},
imgs
:
[],
mc
:
""
,
sku
:
""
,
skuimage
:
[],
comments
:
[],
secondary
:
""
,
detailContent
:
""
,
recommend
:
[],
showSku
:
false
,
ot
:
0
,
currentSku
:
{},
isExsitGoods
:
true
,
pageTitle
:
"商品详情"
,
setting
:
{},
prevPage
:
""
,
//自定义接手传递
opTionObj
:
{},
showShare
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
20
,
GoodsId
:
0
,
CommentGrade
:
0
,
},
showAuth
:
false
,
showCoupons
:
false
,
couponMessage
:
""
,
isAllowShare
:
1
,
u
:
{},
vipState
:
{},
Up
:
0
,
hideshare
:
false
,
comentMsg
:{
GoodsId
:
0
,
Content
:
''
},
comListMsg
:{
pageIndex
:
1
,
pageSize
:
5
,
GoodsId
:
0
},
compentList
:[]
,
//评论列表
compentTotal
:
0
,
curren
:
1
,
AppletID
:
0
,
//小程序id
};
},
components
:
{
goodlist
,
goodsaction
,
kotragoodsaction
,
goodsku
,
auth
,
coupon
,
share
,
hParse
},
onLoad
(
option
)
{
this
.
opTionObj
=
option
;
console
.
log
(
option
,
"option"
);
if
(
option
&&
option
.
id
)
{
this
.
id
=
option
.
id
?
option
.
id
:
29
;
//40887 59512 46942
}
else
{
this
.
id
=
option
.
GoodsId
?
option
.
GoodsId
:
29
;
//40887 59512 46942
}
if
(
option
&&
option
.
custom_params
)
{
let
custom_params
=
JSON
.
parse
(
decodeURIComponent
(
option
.
custom_params
));
console
.
log
(
custom_params
);
if
(
custom_params
.
user_id
)
{
uni
.
setStorageSync
(
"pid"
,
{
pid
:
custom_params
.
user_id
});
}
if
(
custom_params
.
Up
)
{
//分享进入校园id
uni
.
setStorageSync
(
"Up"
,
{
Up
:
custom_params
.
Up
});
}
}
if
(
option
&&
option
.
user_id
)
{
uni
.
setStorageSync
(
"pid"
,
{
pid
:
option
.
user_id
});
}
if
(
option
&&
option
.
SmallShopId
)
{
uni
.
setStorageSync
(
"SmallShopId"
,
{
SmallShopId
:
option
.
SmallShopId
});
// #ifdef APP-NVUE
const
dom
=
weex
.
requireModule
(
"dom"
);
// #endif
import
goodlist
from
"@/components/goods/list"
;
import
goodsaction
from
"./components/goodsaction"
;
//购物车收藏
import
kotragoodsaction
from
"./components/kotragoodsaction"
;
//韩国馆项目引用
import
goodsku
from
"@/components/goods/goodsku"
;
import
auth
from
"@/components/auth/index"
;
import
coupon
from
"@/components/coupons/coupons"
;
import
share
from
"./components/share/share"
;
import
hParse
from
"@/components/u-parse/parse.vue"
;
export
default
{
data
()
{
return
{
barStyle
:
{
height
:
'mc '
,
},
list
:
[{
name
:
'老师介绍'
},
{
name
:
'详情介绍'
},
{
name
:
'上课信息'
}
],
current
:
0
,
id
:
0
,
loading
:
true
,
g
:
{},
imgs
:
[],
mc
:
""
,
sku
:
""
,
skuimage
:
[],
comments
:
[],
secondary
:
""
,
detailContent
:
""
,
recommend
:
[],
showSku
:
false
,
ot
:
0
,
currentSku
:
{},
isExsitGoods
:
true
,
pageTitle
:
"商品详情"
,
setting
:
{},
prevPage
:
""
,
//自定义接手传递
opTionObj
:
{},
showShare
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
20
,
GoodsId
:
0
,
CommentGrade
:
0
,
},
showAuth
:
false
,
showCoupons
:
false
,
couponMessage
:
""
,
isAllowShare
:
1
,
u
:
{},
vipState
:
{},
Up
:
0
,
hideshare
:
false
,
comentMsg
:
{
GoodsId
:
0
,
Content
:
''
},
comListMsg
:
{
pageIndex
:
1
,
pageSize
:
5
,
GoodsId
:
0
},
compentList
:
[],
//评论列表
compentTotal
:
0
,
curren
:
1
,
AppletID
:
0
,
//小程序id
};
},
components
:
{
goodlist
,
goodsaction
,
kotragoodsaction
,
goodsku
,
auth
,
coupon
,
share
,
hParse
},
onPageScroll
(
e
)
{
this
.
scrollTop
=
e
.
scrollTop
;
},
onLoad
(
option
)
{
this
.
opTionObj
=
option
;
console
.
log
(
option
,
"option"
);
if
(
option
&&
option
.
id
)
{
this
.
id
=
option
.
id
?
option
.
id
:
29
;
//40887 59512 46942
}
else
{
this
.
id
=
option
.
GoodsId
?
option
.
GoodsId
:
29
;
//40887 59512 46942
}
if
(
option
&&
option
.
custom_params
)
{
let
custom_params
=
JSON
.
parse
(
decodeURIComponent
(
option
.
custom_params
));
console
.
log
(
custom_params
);
if
(
custom_params
.
user_id
)
{
uni
.
setStorageSync
(
"pid"
,
{
pid
:
custom_params
.
user_id
});
}
if
(
custom_params
.
Up
)
{
//分享进入校园id
uni
.
setStorageSync
(
"Up"
,
{
Up
:
custom_params
.
Up
});
}
}
if
(
option
&&
option
.
user_id
)
{
uni
.
setStorageSync
(
"pid"
,
{
pid
:
option
.
user_id
});
}
if
(
option
&&
option
.
SmallShopId
)
{
uni
.
setStorageSync
(
"SmallShopId"
,
{
SmallShopId
:
option
.
SmallShopId
});
}
if
(
uni
.
getStorageSync
(
"AnchorName"
))
{
//如果有主播名称了先清除
uni
.
removeStorageSync
(
"AnchorName"
);
}
if
(
option
&&
option
.
Up
)
{
//分享进入校园id
uni
.
setStorageSync
(
"Up"
,
{
Up
:
option
.
Up
});
}
this
.
Up
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserPageType
:
0
;
//用于分享出去的参数
if
(
option
&&
option
.
AnchorName
)
{
//当传过来有主播名称的时候 存入缓存
uni
.
setStorageSync
(
"AnchorName"
,
{
AnchorName
:
option
.
AnchorName
});
}
let
basedata
=
uni
.
getStorageSync
(
"basedata"
)
?
uni
.
getStorageSync
(
"basedata"
)
:
''
;
this
.
AppletID
=
basedata
.
home_pages
.
id
?
basedata
.
home_pages
.
id
:
0
;
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
// if (!this.u) {
// this.u = {
// nickName: "未登录",
// avatarUrl: "",
// };
// this.showAuth = true;
// } else {
// this.init();
// this.initPage();
// }
this
.
init
();
this
.
initPage
();
this
.
getVipId
();
this
.
mc
=
this
.
$uiConfig
.
mainColor
;
this
.
secondary
=
this
.
$uiConfig
.
secondary
;
this
.
setting
=
uni
.
getStorageSync
(
"basedata"
).
mall
.
setting
;
wx
.
showShareMenu
({
withShareTicket
:
true
,
menus
:
[
"shareAppMessage"
,
"shareTimeline"
],
});
this
.
comListMsg
.
GoodsId
=
this
.
id
;
this
.
getCommitList
();
},
onShareTimeline
()
{
setTimeout
(()
=>
{
console
.
log
(
"分享调用"
);
this
.
getReceive
();
},
2500
);
let
uid
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserId
:
0
;
if
(
uid
==
0
)
{
uid
=
uni
.
getStorageSync
(
"pid"
)
?
uni
.
getStorageSync
(
"pid"
).
pid
:
0
}
let
SmallShopId
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
SmallShopId
:
0
;
if
(
SmallShopId
==
0
)
{
//如果微店id为0 去找所属微店id
SmallShopId
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserSmallShopId
:
0
;
}
let
title
=
this
.
g
.
app_share_title
!=
null
&&
this
.
g
.
app_share_title
!=
""
?
this
.
g
.
app_share_title
:
this
.
g
.
name
;
let
imageUrl
=
this
.
g
.
app_share_pic
!=
null
&&
this
.
g
.
app_share_pic
!=
""
?
this
.
g
.
app_share_pic
:
this
.
g
.
pic_url
[
0
].
pic_url
;
let
id
=
this
.
id
;
return
{
title
:
title
,
query
:
"id="
+
this
.
id
+
"&user_id="
+
uid
+
"&SmallShopId="
+
SmallShopId
+
"&Up="
+
this
.
Up
,
imageUrl
:
imageUrl
,
};
},
onShareAppMessage
(
res
)
{
setTimeout
(()
=>
{
console
.
log
(
"分享调用"
);
this
.
getReceive
();
},
2500
);
let
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
let
uid
=
u
.
UserId
?
u
.
UserId
:
0
;
if
(
uid
==
0
)
{
uid
=
uni
.
getStorageSync
(
"pid"
)
?
uni
.
getStorageSync
(
"pid"
).
pid
:
0
}
let
SmallShopId
=
u
.
SmallShopId
?
u
.
SmallShopId
:
0
;
if
(
SmallShopId
==
0
)
{
//如果微店id为0 去找所属微店id
SmallShopId
=
u
.
UserSmallShopId
?
u
.
UserSmallShopId
:
0
}
return
{
title
:
this
.
g
.
app_share_title
!=
null
&&
this
.
g
.
app_share_title
!=
""
?
this
.
g
.
app_share_title
:
this
.
g
.
name
,
// path: "/pages/goods/goods?id=" + this.id + "&user_id=" + uid+ "&SmallShopId=" + SmallShopId,
path
:
"/pages/index/index?id="
+
this
.
id
+
"&user_id="
+
uid
+
"&SmallShopId="
+
SmallShopId
+
"&Up="
+
this
.
Up
+
'&JumpType=1'
,
imageUrl
:
this
.
g
.
app_share_pic
!=
null
&&
this
.
g
.
app_share_pic
!=
""
?
this
.
g
.
app_share_pic
:
this
.
g
.
pic_url
[
0
].
pic_url
,
};
},
mounted
()
{
setTimeout
(()
=>
{
this
.
initImages
();
},
3000
);
},
methods
:
{
// counter() {
// document.querySelector("#productId");
// },
// tob切换
change
(
index
)
{
this
.
current
=
index
;
},
clickDescription
(
e
)
{
console
.
log
(
e
);
},
initImages
()
{
// let that = this;
// let info = uni.createSelectorQuery().in(this);
// info
// .select(".goods")
// .boundingClientRect((data) => {
// console.log("得到布局位置信息" + JSON.stringify(data));
// })
// .exec();
// info
// .boundingClientRect(function (data) {
// console.log(data)
// })
// .exec();
// wx.createSelectorQuery()
// .selectAll("#goodpic")
// .fields({ rect: true })
// .exec(res => {
// console.log(res);
// });
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
// this.showAuth = false;
this
.
init
();
this
.
initPage
();
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
},
initPage
()
{
let
currentPages
=
getCurrentPages
();
let
u
=
"/"
+
currentPages
[
currentPages
.
length
-
1
].
route
;
let
pages
=
uni
.
getStorageSync
(
"basedata"
)
?
uni
.
getStorageSync
(
"basedata"
).
bar_title
:
[];
pages
.
forEach
((
x
)
=>
{
if
(
x
.
value
==
u
)
{
this
.
pageTitle
=
x
.
new_name
?
x
.
new_name
:
x
.
name
;
}
});
uni
.
setNavigationBarTitle
({
title
:
this
.
pageTitle
,
});
},
clickCommentHandler
()
{
uni
.
navigateTo
({
url
:
"/pages/goods/comment-list?id="
+
this
.
id
,
});
},
getVipId
()
{
//获取会员ID
this
.
request2
({
url
:
"/api/AppletGoods/GetAppletVipGradeInfo"
,
data
:
{},
},
(
res
)
=>
{
if
(
res
.
data
)
{
this
.
vipState
=
res
.
data
.
VIPModel
;
}
// this.initRecommend();
}
);
},
goVIP
()
{
//跳转到购买的页面查看
let
GradeId
=
this
.
vipState
.
Id
;
uni
.
navigateTo
({
url
:
"/pages/share/buyInterest/index?showLook=1&GradeId="
+
GradeId
,
});
},
init
()
{
this
.
loading
=
true
;
this
.
request2
({
url
:
"/api/AppletGoods/GetAppletGoodsInfo"
,
data
:
{
GoodsId
:
this
.
id
,
},
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
g
=
res
.
data
.
goods
;
this
.
g
.
totalStock
=
0
;
this
.
g
.
attr
.
forEach
((
x
)
=>
{
this
.
g
.
totalStock
+=
x
.
stock
;
});
this
.
g
.
marketingLogo
=
JSON
.
parse
(
this
.
g
.
marketingLogo
);
this
.
isAllowShare
=
res
.
data
.
goods
.
isAllowShare
;
//1为可以分享 2为不能分享
if
(
this
.
isAllowShare
==
2
)
{
//隐藏分享的按钮
wx
.
hideShareMenu
({
menus
:
[
"shareAppMessage"
,
"shareTimeline"
],
});
}
this
.
g
.
pic_url
.
forEach
((
x
)
=>
{
this
.
imgs
.
push
(
x
.
pic_url
);
});
if
(
this
.
g
.
attr_groups
.
length
>
0
)
{
this
.
g
.
attr_groups
.
forEach
((
x
,
i
)
=>
{
if
(
i
>
0
)
{
this
.
sku
+=
","
;
}
this
.
sku
+=
x
.
attr_group_name
;
});
this
.
g
.
attr_groups
[
0
].
attr_list
.
forEach
((
x
)
=>
{
if
(
x
.
pic_url
)
{
this
.
skuimage
.
push
(
x
.
pic_url
);
}
});
}
var
richtext
=
this
.
g
.
detail
;
// richtext = richtext.replace(
// /
<
img
/
g
,
// '
<
img
style
=
"margin-top:-4px;width:100%"
'
// );
this.detailContent = richtext;
if (this.AppletID == 5) {
this.detailContent = this.formatRichText(richtext)
}
this.loading = false;
//登录在调用评论接口
if (this.u) {
this.initComments();
this.setFootMarkInfo(res.data.goods.id);
}
this.initRecommend();
} else {
this.isExsitGoods = false;
}
}
);
},
formatRichText(html) { // 甲鹤小程序的时候 图片超出的处理
let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
match = match.replace(/style="[^"]+"/gi, '').replace(/style='
[
^
']+'
/
gi
,
''
);
match
=
match
.
replace
(
/width="
[^
"
]
+"/gi
,
''
).
replace
(
/width='
[^
'
]
+'/gi
,
''
);
match
=
match
.
replace
(
/height="
[^
"
]
+"/gi
,
''
).
replace
(
/height='
[^
'
]
+'/gi
,
''
);
return
match
;
});
newContent
=
newContent
.
replace
(
/style="
[^
"
]
+"/gi
,
function
(
match
,
capture
)
{
match
=
match
.
replace
(
/width:
[^
;
]
+;/gi
,
'max-width:100%;'
).
replace
(
/width:
[^
;
]
+;/gi
,
'max-width:100%;'
);
return
match
;
});
newContent
=
newContent
.
replace
(
/<br
[^
>
]
*
\/
>/gi
,
''
);
newContent
=
newContent
.
replace
(
/\<img/gi
,
'<img style="max-width:100%;height:auto;display:inline-block;margin:10rpx auto;"'
);
return
newContent
;
},
previewImage
(
i
)
{
uni
.
previewImage
({
urls
:
this
.
imgs
,
current
:
i
,
longPressActions
:
{
itemList
:
[
"发送给朋友"
,
"保存图片"
,
"收藏"
],
success
:
function
(
data
)
{
console
.
log
(
"选中了第"
+
(
data
.
tapIndex
+
1
)
+
"个按钮,第"
+
(
data
.
index
+
1
)
+
"张图片"
);
},
fail
:
function
(
err
)
{
console
.
log
(
err
.
errMsg
);
},
},
});
},
initComments
()
{
this
.
msg
.
GoodsId
=
this
.
id
;
this
.
request2
({
url
:
"/api/AppletOrder/GetAppletGoodsCommentPageList"
,
data
:
this
.
msg
,
},
(
res
)
=>
{
this
.
comments
=
res
.
data
.
pageData
;
// this.initRecommend();
},
(
err
)
=>
{
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
this
.
init
();
this
.
initPage
();
}
);
},
initRecommend
()
{
var
UserPageType
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserPageType
:
0
;
this
.
request2
({
url
:
"/api/AppletGoods/GetAppletGoodsRecommendListForZY"
,
data
:
{
RecommendType
:
1
,
GoodsId
:
this
.
id
,
GoodsPageType
:
UserPageType
},
},
(
res
)
=>
{
this
.
recommend
=
res
.
data
.
List
;
}
);
},
setFootMarkInfo
(
id
)
{
this
.
request2
({
url
:
"/api/AppletUser/SetUserFootMarkInfo"
,
data
:
{
GoodsId
:
id
,
},
},
(
res
)
=>
{}
);
},
joinCar
()
{
console
.
log
(
"触发1"
);
this
.
showSku
=
true
;
this
.
ot
=
0
;
},
buy
()
{
this
.
showSku
=
true
;
this
.
ot
=
1
;
},
chosenSku
()
{
if
(
this
.
u
)
{
this
.
showSku
=
true
;
this
.
ot
=
2
;
}
else
{
this
.
showAuth
=
true
;
}
},
closeSkuChosen
(
obj
)
{
this
.
sku
=
""
;
if
(
obj
)
{
this
.
currentSku
=
obj
;
obj
.
attr_list
.
forEach
((
x
,
i
)
=>
{
if
(
i
>
0
)
{
this
.
sku
+=
","
;
}
this
.
sku
+=
`"
${
x
.
attr_name
}
" `
;
});
}
else
{
this
.
g
.
attr_groups
.
forEach
((
x
,
i
)
=>
{
if
(
i
>
0
)
{
this
.
sku
+=
","
;
}
this
.
sku
+=
x
.
attr_group_name
;
});
}
},
closeShare
()
{
this
.
showShare
=
false
;
},
openShare
()
{
if
(
this
.
u
)
{
this
.
showShare
=
true
;
}
else
{
this
.
showAuth
=
true
;
}
},
getReceive
()
{
//分享进入调取领券接口
// 1-分享,2-购买并付款
this
.
request2
({
url
:
"/api/AppletUser/ShareCoupon"
,
data
:
{
TriggerType
:
1
,
},
},
(
res
)
=>
{
console
.
log
(
res
,
"res"
);
if
(
res
.
couponResultCode
==
1
)
{
this
.
couponMessage
=
res
.
couponMessage
;
this
.
showCoupons
=
true
;
}
}
);
},
goLook
()
{
this
.
showCoupons
=
true
;
uni
.
navigateTo
({
url
:
"/pages/coupon/index/index"
,
});
},
closeBtn
()
{
this
.
showCoupons
=
false
;
},
goUrl
(
url
)
{
uni
.
navigateTo
({
url
:
url
,
});
},
//点击跳转
startPlay
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/video/index?GoodsId='
+
this
.
id
+
'&VideoUrl='
+
item
.
pic_url
})
},
goCoiling
(
url
)
{
//跳转发圈页面
uni
.
navigateTo
({
url
:
url
})
},
//提交留言
submitCommit
()
{
this
.
comentMsg
.
GoodsId
=
this
.
id
;
if
(
this
.
comentMsg
.
Content
==
''
)
{
uni
.
showToast
({
title
:
"请输入评价内容"
,
icon
:
'none'
});
return
;
}
if
(
this
.
comentMsg
.
Content
.
length
<
10
)
{
uni
.
showToast
({
title
:
"留言至少10个字!"
,
icon
:
'none'
});
return
;
}
this
.
request2
({
url
:
"/api/AppletGoods/SetGoodsLeavemessage"
,
data
:
this
.
comentMsg
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"评价成功"
});
this
.
comentMsg
.
Content
=
''
;
this
.
getCommitList
();
}
}
);
},
//获取评论信息
getCommitList
()
{
this
.
request2
({
url
:
"/api/AppletGoods/GetGoodsLeaveMessagePage"
,
data
:
this
.
comListMsg
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
compentTotal
=
res
.
data
.
pageCount
;
this
.
compentList
=
res
.
data
.
pageData
;
}
}
);
},
//上一页
goBefore
()
{
this
.
comListMsg
.
pageIndex
--
;
if
(
this
.
comListMsg
.
pageIndex
<
1
)
{
this
.
comListMsg
.
pageIndex
=
1
}
this
.
getCommitList
();
},
//下一页
goAfter
()
{
if
(
this
.
comListMsg
.
pageIndex
<
this
.
compentTotal
)
{
this
.
comListMsg
.
pageIndex
++
;
}
this
.
getCommitList
();
},
//删除评论
delCompent
(
item
)
{
this
.
request2
({
url
:
"/api/AppletGoods/RemoveGoodsLeavemessage"
,
data
:
{
Id
:
item
.
Id
},
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"删除成功"
});
this
.
comListMsg
.
pageIndex
=
1
;
this
.
getCommitList
();
}
}
);
},
goclose
()
{
this
.
hideshare
=
true
;
this
.
$forceUpdate
()
console
.
log
(
this
.
hideshare
,
'this.hideshare'
)
}
},
};
</
script
>
<
style
>
.the-top
{
position
:
absolute
;
top
:
82%
;
right
:
0%
;
width
:
50px
;
height
:
50px
;
}
if
(
uni
.
getStorageSync
(
"AnchorName"
))
{
//如果有主播名称了先清除
uni
.
removeStorageSync
(
"AnchorName"
);
}
if
(
option
&&
option
.
Up
)
{
//分享进入校园id
uni
.
setStorageSync
(
"Up"
,
{
Up
:
option
.
Up
});
.information-list
{
color
:
#999
;
margin-bottom
:
50
rpx
;
}
this
.
Up
=
uni
.
getStorageSync
(
"mall_UserInfo"
)?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserPageType
:
0
;
//用于分享出去的参数
if
(
option
&&
option
.
AnchorName
)
{
//当传过来有主播名称的时候 存入缓存
uni
.
setStorageSync
(
"AnchorName"
,
{
AnchorName
:
option
.
AnchorName
});
}
let
basedata
=
uni
.
getStorageSync
(
"basedata"
)?
uni
.
getStorageSync
(
"basedata"
):
''
;
this
.
AppletID
=
basedata
.
home_pages
.
id
?
basedata
.
home_pages
.
id
:
0
;
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
// if (!this.u) {
// this.u = {
// nickName: "未登录",
// avatarUrl: "",
// };
// this.showAuth = true;
// } else {
// this.init();
// this.initPage();
// }
this
.
init
();
this
.
initPage
();
this
.
getVipId
();
this
.
mc
=
this
.
$uiConfig
.
mainColor
;
this
.
secondary
=
this
.
$uiConfig
.
secondary
;
this
.
setting
=
uni
.
getStorageSync
(
"basedata"
).
mall
.
setting
;
wx
.
showShareMenu
({
withShareTicket
:
true
,
menus
:
[
"shareAppMessage"
,
"shareTimeline"
],
});
this
.
comListMsg
.
GoodsId
=
this
.
id
;
this
.
getCommitList
();
},
onShareTimeline
()
{
setTimeout
(()
=>
{
console
.
log
(
"分享调用"
);
this
.
getReceive
();
},
2500
);
let
uid
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserId
:
0
;
if
(
uid
==
0
){
uid
=
uni
.
getStorageSync
(
"pid"
)?
uni
.
getStorageSync
(
"pid"
).
pid
:
0
}
let
SmallShopId
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
SmallShopId
:
0
;
if
(
SmallShopId
==
0
){
//如果微店id为0 去找所属微店id
SmallShopId
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserSmallShopId
:
0
;
}
let
title
=
this
.
g
.
app_share_title
!=
null
&&
this
.
g
.
app_share_title
!=
""
?
this
.
g
.
app_share_title
:
this
.
g
.
name
;
let
imageUrl
=
this
.
g
.
app_share_pic
!=
null
&&
this
.
g
.
app_share_pic
!=
""
?
this
.
g
.
app_share_pic
:
this
.
g
.
pic_url
[
0
].
pic_url
;
let
id
=
this
.
id
;
return
{
title
:
title
,
query
:
"id="
+
this
.
id
+
"&user_id="
+
uid
+
"&SmallShopId="
+
SmallShopId
+
"&Up="
+
this
.
Up
,
imageUrl
:
imageUrl
,
};
},
onShareAppMessage
(
res
)
{
setTimeout
(()
=>
{
console
.
log
(
"分享调用"
);
this
.
getReceive
();
},
2500
);
let
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
let
uid
=
u
.
UserId
?
u
.
UserId
:
0
;
if
(
uid
==
0
){
uid
=
uni
.
getStorageSync
(
"pid"
)?
uni
.
getStorageSync
(
"pid"
).
pid
:
0
.information-list2
{
margin-left
:
50
rpx
;
}
let
SmallShopId
=
u
.
SmallShopId
?
u
.
SmallShopId
:
0
;
if
(
SmallShopId
==
0
){
//如果微店id为0 去找所属微店id
SmallShopId
=
u
.
UserSmallShopId
?
u
.
UserSmallShopId
:
0
.teacher
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
50
rpx
;
}
return
{
title
:
this
.
g
.
app_share_title
!=
null
&&
this
.
g
.
app_share_title
!=
""
?
this
.
g
.
app_share_title
:
this
.
g
.
name
,
// path: "/pages/goods/goods?id=" + this.id + "&user_id=" + uid+ "&SmallShopId=" + SmallShopId,
path
:
"/pages/index/index?id="
+
this
.
id
+
"&user_id="
+
uid
+
"&SmallShopId="
+
SmallShopId
+
"&Up="
+
this
.
Up
+
'&JumpType=1'
,
imageUrl
:
this
.
g
.
app_share_pic
!=
null
&&
this
.
g
.
app_share_pic
!=
""
?
this
.
g
.
app_share_pic
:
this
.
g
.
pic_url
[
0
].
pic_url
,
};
},
mounted
()
{
setTimeout
(()
=>
{
this
.
initImages
();
},
3000
);
},
methods
:
{
clickDescription
(
e
)
{
console
.
log
(
e
);
},
initImages
()
{
// let that = this;
// let info = uni.createSelectorQuery().in(this);
// info
// .select(".goods")
// .boundingClientRect((data) => {
// console.log("得到布局位置信息" + JSON.stringify(data));
// })
// .exec();
// info
// .boundingClientRect(function (data) {
// console.log(data)
// })
// .exec();
// wx.createSelectorQuery()
// .selectAll("#goodpic")
// .fields({ rect: true })
// .exec(res => {
// console.log(res);
// });
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
// this.showAuth = false;
this
.
init
();
this
.
initPage
();
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
},
initPage
()
{
let
currentPages
=
getCurrentPages
();
let
u
=
"/"
+
currentPages
[
currentPages
.
length
-
1
].
route
;
let
pages
=
uni
.
getStorageSync
(
"basedata"
)
?
uni
.
getStorageSync
(
"basedata"
).
bar_title
:
[];
pages
.
forEach
((
x
)
=>
{
if
(
x
.
value
==
u
)
{
this
.
pageTitle
=
x
.
new_name
?
x
.
new_name
:
x
.
name
;
}
});
uni
.
setNavigationBarTitle
({
title
:
this
.
pageTitle
,
});
},
clickCommentHandler
()
{
uni
.
navigateTo
({
url
:
"/pages/goods/comment-list?id="
+
this
.
id
,
});
},
getVipId
()
{
//获取会员ID
this
.
request2
(
{
url
:
"/api/AppletGoods/GetAppletVipGradeInfo"
,
data
:
{},
},
(
res
)
=>
{
if
(
res
.
data
)
{
this
.
vipState
=
res
.
data
.
VIPModel
;
}
// this.initRecommend();
}
);
},
goVIP
()
{
//跳转到购买的页面查看
let
GradeId
=
this
.
vipState
.
Id
;
uni
.
navigateTo
({
url
:
"/pages/share/buyInterest/index?showLook=1&GradeId="
+
GradeId
,
});
},
init
()
{
this
.
loading
=
true
;
this
.
request2
(
{
url
:
"/api/AppletGoods/GetAppletGoodsInfo"
,
data
:
{
GoodsId
:
this
.
id
,
},
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
g
=
res
.
data
.
goods
;
this
.
g
.
totalStock
=
0
;
this
.
g
.
attr
.
forEach
((
x
)
=>
{
this
.
g
.
totalStock
+=
x
.
stock
;
});
this
.
g
.
marketingLogo
=
JSON
.
parse
(
this
.
g
.
marketingLogo
);
this
.
isAllowShare
=
res
.
data
.
goods
.
isAllowShare
;
//1为可以分享 2为不能分享
if
(
this
.
isAllowShare
==
2
)
{
//隐藏分享的按钮
wx
.
hideShareMenu
({
menus
:
[
"shareAppMessage"
,
"shareTimeline"
],
});
}
this
.
g
.
pic_url
.
forEach
((
x
)
=>
{
this
.
imgs
.
push
(
x
.
pic_url
);
});
if
(
this
.
g
.
attr_groups
.
length
>
0
)
{
this
.
g
.
attr_groups
.
forEach
((
x
,
i
)
=>
{
if
(
i
>
0
)
{
this
.
sku
+=
","
;
}
this
.
sku
+=
x
.
attr_group_name
;
});
this
.
g
.
attr_groups
[
0
].
attr_list
.
forEach
((
x
)
=>
{
if
(
x
.
pic_url
)
{
this
.
skuimage
.
push
(
x
.
pic_url
);
}
});
}
var
richtext
=
this
.
g
.
detail
;
// richtext = richtext.replace(
// /
<
img
/
g
,
// '
<
img
style
=
"margin-top:-4px;width:100%"
'
// );
this.detailContent = richtext;
if(this.AppletID==5){
this.detailContent = this.formatRichText(richtext)
}
this.loading = false;
//登录在调用评论接口
if (this.u) {
this.initComments();
this.setFootMarkInfo(res.data.goods.id);
}
this.initRecommend();
} else {
this.isExsitGoods = false;
}
}
);
},
formatRichText(html) {// 甲鹤小程序的时候 图片超出的处理
let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
match = match.replace(/style="[^"]+"/gi, '').replace(/style='
[
^
']+'
/
gi
,
''
);
match
=
match
.
replace
(
/width="
[^
"
]
+"/gi
,
''
).
replace
(
/width='
[^
'
]
+'/gi
,
''
);
match
=
match
.
replace
(
/height="
[^
"
]
+"/gi
,
''
).
replace
(
/height='
[^
'
]
+'/gi
,
''
);
return
match
;
});
newContent
=
newContent
.
replace
(
/style="
[^
"
]
+"/gi
,
function
(
match
,
capture
)
{
match
=
match
.
replace
(
/width:
[^
;
]
+;/gi
,
'max-width:100%;'
).
replace
(
/width:
[^
;
]
+;/gi
,
'max-width:100%;'
);
return
match
;
});
newContent
=
newContent
.
replace
(
/<br
[^
>
]
*
\/
>/gi
,
''
);
newContent
=
newContent
.
replace
(
/\<img/gi
,
'<img style="max-width:100%;height:auto;display:inline-block;margin:10rpx auto;"'
);
return
newContent
;
},
previewImage
(
i
)
{
uni
.
previewImage
({
urls
:
this
.
imgs
,
current
:
i
,
longPressActions
:
{
itemList
:
[
"发送给朋友"
,
"保存图片"
,
"收藏"
],
success
:
function
(
data
)
{
console
.
log
(
"选中了第"
+
(
data
.
tapIndex
+
1
)
+
"个按钮,第"
+
(
data
.
index
+
1
)
+
"张图片"
);
},
fail
:
function
(
err
)
{
console
.
log
(
err
.
errMsg
);
},
},
});
},
initComments
()
{
this
.
msg
.
GoodsId
=
this
.
id
;
this
.
request2
(
{
url
:
"/api/AppletOrder/GetAppletGoodsCommentPageList"
,
data
:
this
.
msg
,
},
(
res
)
=>
{
this
.
comments
=
res
.
data
.
pageData
;
// this.initRecommend();
},
(
err
)
=>
{
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
this
.
init
();
this
.
initPage
();
}
);
},
initRecommend
()
{
var
UserPageType
=
uni
.
getStorageSync
(
"mall_UserInfo"
)?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserPageType
:
0
;
this
.
request2
(
{
url
:
"/api/AppletGoods/GetAppletGoodsRecommendListForZY"
,
data
:
{
RecommendType
:
1
,
GoodsId
:
this
.
id
,
GoodsPageType
:
UserPageType
},
},
(
res
)
=>
{
this
.
recommend
=
res
.
data
.
List
;
}
);
},
setFootMarkInfo
(
id
)
{
this
.
request2
(
{
url
:
"/api/AppletUser/SetUserFootMarkInfo"
,
data
:
{
GoodsId
:
id
,
},
},
(
res
)
=>
{}
);
},
joinCar
()
{
console
.
log
(
"触发1"
);
this
.
showSku
=
true
;
this
.
ot
=
0
;
},
buy
()
{
this
.
showSku
=
true
;
this
.
ot
=
1
;
},
chosenSku
()
{
if
(
this
.
u
)
{
this
.
showSku
=
true
;
this
.
ot
=
2
;
}
else
{
this
.
showAuth
=
true
;
}
},
closeSkuChosen
(
obj
)
{
this
.
sku
=
""
;
if
(
obj
)
{
this
.
currentSku
=
obj
;
obj
.
attr_list
.
forEach
((
x
,
i
)
=>
{
if
(
i
>
0
)
{
this
.
sku
+=
","
;
}
this
.
sku
+=
`"
${
x
.
attr_name
}
" `
;
});
}
else
{
this
.
g
.
attr_groups
.
forEach
((
x
,
i
)
=>
{
if
(
i
>
0
)
{
this
.
sku
+=
","
;
}
this
.
sku
+=
x
.
attr_group_name
;
});
}
},
closeShare
()
{
this
.
showShare
=
false
;
},
openShare
()
{
if
(
this
.
u
)
{
this
.
showShare
=
true
;
}
else
{
this
.
showAuth
=
true
;
}
},
getReceive
()
{
//分享进入调取领券接口
// 1-分享,2-购买并付款
this
.
request2
(
{
url
:
"/api/AppletUser/ShareCoupon"
,
data
:
{
TriggerType
:
1
,
},
},
(
res
)
=>
{
console
.
log
(
res
,
"res"
);
if
(
res
.
couponResultCode
==
1
)
{
this
.
couponMessage
=
res
.
couponMessage
;
this
.
showCoupons
=
true
;
}
}
);
},
goLook
()
{
this
.
showCoupons
=
true
;
uni
.
navigateTo
({
url
:
"/pages/coupon/index/index"
,
});
},
closeBtn
()
{
this
.
showCoupons
=
false
;
},
goUrl
(
url
)
{
uni
.
navigateTo
({
url
:
url
,
});
},
//点击跳转
startPlay
(
item
){
uni
.
navigateTo
({
url
:
'/pages/video/index?GoodsId='
+
this
.
id
+
'&VideoUrl='
+
item
.
pic_url
})
},
goCoiling
(
url
){
//跳转发圈页面
uni
.
navigateTo
({
url
:
url
})
},
//提交留言
submitCommit
(){
this
.
comentMsg
.
GoodsId
=
this
.
id
;
if
(
this
.
comentMsg
.
Content
==
''
){
uni
.
showToast
({
title
:
"请输入评价内容"
,
icon
:
'none'
});
return
;
}
if
(
this
.
comentMsg
.
Content
.
length
<
10
){
uni
.
showToast
({
title
:
"留言至少10个字!"
,
icon
:
'none'
});
return
;
}
this
.
request2
(
{
url
:
"/api/AppletGoods/SetGoodsLeavemessage"
,
data
:
this
.
comentMsg
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"评价成功"
});
this
.
comentMsg
.
Content
=
''
;
this
.
getCommitList
();
}
}
);
},
//获取评论信息
getCommitList
(){
this
.
request2
(
{
url
:
"/api/AppletGoods/GetGoodsLeaveMessagePage"
,
data
:
this
.
comListMsg
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
compentTotal
=
res
.
data
.
pageCount
;
this
.
compentList
=
res
.
data
.
pageData
;
}
}
);
},
//上一页
goBefore
(){
this
.
comListMsg
.
pageIndex
--
;
if
(
this
.
comListMsg
.
pageIndex
<
1
){
this
.
comListMsg
.
pageIndex
=
1
}
this
.
getCommitList
();
},
//下一页
goAfter
(){
if
(
this
.
comListMsg
.
pageIndex
<
this
.
compentTotal
){
this
.
comListMsg
.
pageIndex
++
;
}
this
.
getCommitList
();
},
//删除评论
delCompent
(
item
){
this
.
request2
(
{
url
:
"/api/AppletGoods/RemoveGoodsLeavemessage"
,
data
:
{
Id
:
item
.
Id
},
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"删除成功"
});
this
.
comListMsg
.
pageIndex
=
1
;
this
.
getCommitList
();
}
}
);
},
goclose
(){
this
.
hideshare
=
true
;
this
.
$forceUpdate
()
console
.
log
(
this
.
hideshare
,
'this.hideshare'
)
.teacher2
{
margin-left
:
30
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
/* width: 100%; */
flex
:
1
;
}
},
};
</
script
>
<
style
>
@font-face
{
font-family
:
"oswald"
;
src
:
url("https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/smallapp/Oswald-Regular.ttf")
;
}
.goods
{
height
:
100%
;
background
:
#f5f5f5
;
padding-bottom
:
55px
;
}
.goods
.g-info
{
background
:
#fff
;
padding
:
10px
;
}
.goods
.g-info
.g-name
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
font-size
:
16px
;
height
:
45px
;
}
.goods
.g-info
.g-price-box
{
display
:
flex
;
align-items
:
flex-end
;
}
.goods
.g-info
.g-price-box
.left
{
flex
:
1
;
width
:
1px
;
}
.goods
.g-info
.g-price-box
.left
.price
{
margin
:
15px
0
;
font-size
:
24px
;
font-weight
:
bold
;
height
:
31px
;
}
.goods
.g-info
.g-price-box
.left
.price
.small
{
font-size
:
16px
;
}
.goods
.numfont
{
font-family
:
"oswald"
;
font-weight
:
unset
;
}
.goods
.g-info
.g-price-box
.left
.sell
{
font-size
:
13px
;
color
:
gray
;
}
.goods
.g-info
.g-price-box
.left
.sell
.oprice
{
text-decoration
:
line-through
;
margin-right
:
12px
;
}
.goods
.g-info
.g-price-box
.right
{
width
:
30px
;
margin-left
:
20px
;
height
:
100%
;
font-size
:
12px
;
color
:
#333
;
}
.goods
.g-info
.g-price-box
.right
.share-icon
{
width
:
22px
;
height
:
22px
;
margin-bottom
:
12
rpx
;
}
.goods
.sku-box
{
margin
:
10px
0
;
background
:
#fff
;
display
:
flex
;
padding
:
15px
10px
;
align-items
:
center
;
}
.goods
.sku-box
.label
{
font-size
:
12px
;
color
:
gray
;
margin-right
:
15px
;
}
.goods
.details
{
padding
:
10px
;
}
.goods
.details
image
{
width
:
100%
;
}
.goods
.sku-box
.content
{
width
:
1px
;
flex
:
1
;
color
:
#000
;
font-size
:
12px
;
}
.goods
.sku-box
.content
.sku-chosen
{
display
:
flex
;
align-items
:
center
;
}
.goods
.sku-box
.content
.sku-chosen
.arrow
{
width
:
20px
;
}
.goods
.sku-box
.content
.sku-chosen
.sku
{
font-size
:
12px
;
width
:
1
rpx
;
flex
:
1
;
}
.goods
.sku-box
.content
.suk-item
{
margin-top
:
10px
;
display
:
flex
;
}
.goods
.sku-box
.content
.suk-item
.item
{
margin-right
:
5px
;
background
:
#f5f5f5
;
height
:
24px
;
line-height
:
24px
;
font-size
:
12px
;
padding
:
0
5px
;
border-radius
:
3px
;
overflow
:
hidden
;
color
:
#999
;
}
.goods
.sku-box
.content
.suk-item
.item.img
{
padding
:
0
;
width
:
24px
;
}
.goods
.comment
{
margin
:
10px
0
;
background
:
#fff
;
padding
:
10px
;
}
.goods
.comment
.chead
{
padding-bottom
:
10px
;
border-bottom
:
1px
solid
#f1f1f1
;
}
.goods
.comment
.content
{
display
:
flex
;
flex-direction
:
column
;
margin-top
:
15px
;
}
.goods
.comment
.content
.u-box
{
display
:
flex
;
margin-bottom
:
10px
;
align-items
:
center
;
}
.goods
.comment
.content
.u-box
.user
{
flex
:
1
;
font-size
:
12px
;
color
:
gray
;
align-items
:
center
;
display
:
flex
;
}
.goods
.comment
.content
.u-box
.timer
{
font-size
:
12px
;
color
:
gray
;
text-align
:
right
;
flex
:
1
;
}
.goods
.comment
.content
.u-box
.ucontent
{
font-size
:
12px
;
color
:
#000
;
margin-top
:
10px
;
}
.goods
.detals
{
padding
:
10px
;
background
:
#fff
;
margin-top
:
10px
;
}
.goods
.detals
*
{
max-width
:
100%
;
}
.goods
.is_share
{
width
:
125px
;
height
:
45px
;
border-top-left-radius
:
22.5px
;
border-bottom-left-radius
:
22.5px
;
background
:
#111
;
opacity
:
0.8
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
position
:
absolute
;
top
:
300px
;
right
:
0
;
}
.goods
.Logo
{
padding
:
1px
5px
;
display
:
inline-block
;
font-size
:
22
rpx
;
margin-right
:
5
rpx
;
border-radius
:
4px
;
}
.goods
.screen-swiper
{
.teacher3
{
line-height
:
45
rpx
;
}
.teacher4
{
font-weight
:
bold
;
}
.teacher5
{
color
:
#999
;
font-size
:
20
rpx
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
1
;
-webkit-box-orient
:
vertical
}
.introduce-box
{
display
:
flex
;
align-items
:
center
;
margin-top
:
50
rpx
;
margin-bottom
:
50
rpx
;
}
.introduce
{
width
:
4
rpx
;
height
:
30
rpx
;
background-color
:
red
;
display
:
inline-block
;
}
.introduce2
{
font-weight
:
bold
;
font-size
:
30
rpx
;
margin-left
:
10
rpx
}
.u-tab-item
{
color
:
black
!important
;
}
.the-price
{
margin-top
:
30
rpx
;
}
.small22
{
font-size
:
32
rpx
;
}
.numfont22
{
font-family
:
"oswald"
;
font-weight
:
unset
;
font-size
:
44
rpx
;
font-weight
:
bold
;
}
.sign-up
{
font-size
:
20
rpx
;
color
:
#999
;
display
:
flex
;
align-items
:
center
;
}
.sign-dian
{
height
:
6
rpx
;
width
:
6
rpx
;
border-radius
:
50%
;
background-color
:
#999
;
margin-left
:
10
rpx
;
margin-right
:
10
rpx
;
display
:
inline-block
;
}
@font-face
{
font-family
:
"oswald"
;
src
:
url("https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/smallapp/Oswald-Regular.ttf")
;
}
.goods
{
height
:
100%
;
background
:
#f5f5f5
;
padding-bottom
:
55px
;
position
:
relative
;
}
.goods
.g-info
{
background
:
#fff
;
padding
:
10px
;
}
.goods
.g-info
.g-name
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
font-size
:
16px
;
height
:
45px
;
}
.goods
.g-info
.g-price-box
{
display
:
flex
;
align-items
:
flex-end
;
}
.goods
.g-info
.g-price-box
.left
{
flex
:
1
;
width
:
1px
;
}
.goods
.g-info
.g-price-box
.left
.price
{
margin
:
15px
0
;
font-size
:
24px
;
font-weight
:
bold
;
height
:
31px
;
}
.goods
.g-info
.g-price-box
.left
.price
.small
{
font-size
:
16px
;
}
.goods
.numfont
{
font-family
:
"oswald"
;
font-weight
:
unset
;
}
.goods
.g-info
.g-price-box
.left
.sell
{
font-size
:
13px
;
color
:
gray
;
}
.goods
.g-info
.g-price-box
.left
.sell
.oprice
{
text-decoration
:
line-through
;
margin-right
:
12px
;
}
.goods
.g-info
.g-price-box
.right
{
width
:
30px
;
margin-left
:
20px
;
height
:
100%
;
font-size
:
12px
;
color
:
#333
;
}
.goods
.g-info
.g-price-box
.right
.share-icon
{
width
:
22px
;
height
:
22px
;
margin-bottom
:
12
rpx
;
}
.goods
.sku-box
{
margin
:
10px
0
;
background
:
#fff
;
display
:
flex
;
padding
:
15px
10px
;
align-items
:
center
;
}
.goods
.sku-box
.label
{
font-size
:
12px
;
color
:
gray
;
margin-right
:
15px
;
}
.goods
.details
{
padding
:
10px
;
}
.goods
.details
image
{
width
:
100%
;
}
.goods
.sku-box
.content
{
width
:
1px
;
flex
:
1
;
color
:
#000
;
font-size
:
12px
;
}
.goods
.sku-box
.content
.sku-chosen
{
display
:
flex
;
align-items
:
center
;
}
.goods
.sku-box
.content
.sku-chosen
.arrow
{
width
:
20px
;
}
.goods
.sku-box
.content
.sku-chosen
.sku
{
font-size
:
12px
;
width
:
1
rpx
;
flex
:
1
;
}
.goods
.sku-box
.content
.suk-item
{
margin-top
:
10px
;
display
:
flex
;
}
.goods
.sku-box
.content
.suk-item
.item
{
margin-right
:
5px
;
background
:
#f5f5f5
;
height
:
24px
;
line-height
:
24px
;
font-size
:
12px
;
padding
:
0
5px
;
border-radius
:
3px
;
overflow
:
hidden
;
color
:
#999
;
}
.goods
.sku-box
.content
.suk-item
.item.img
{
padding
:
0
;
width
:
24px
;
}
.goods
.comment
{
margin
:
10px
0
;
background
:
#fff
;
padding
:
10px
;
}
.goods
.comment
.chead
{
padding-bottom
:
10px
;
border-bottom
:
1px
solid
#f1f1f1
;
}
.goods
.comment
.content
{
display
:
flex
;
flex-direction
:
column
;
margin-top
:
15px
;
}
.goods
.comment
.content
.u-box
{
display
:
flex
;
margin-bottom
:
10px
;
align-items
:
center
;
}
.goods
.comment
.content
.u-box
.user
{
flex
:
1
;
font-size
:
12px
;
color
:
gray
;
align-items
:
center
;
display
:
flex
;
}
.goods
.comment
.content
.u-box
.timer
{
font-size
:
12px
;
color
:
gray
;
text-align
:
right
;
flex
:
1
;
}
.goods
.comment
.content
.u-box
.ucontent
{
font-size
:
12px
;
color
:
#000
;
margin-top
:
10px
;
}
.goods
.detals
{
padding
:
10px
;
background
:
#fff
;
margin-top
:
10px
;
}
.goods
.detals
*
{
max-width
:
100%
;
}
.goods
.is_share
{
width
:
125px
;
height
:
45px
;
border-top-left-radius
:
22.5px
;
border-bottom-left-radius
:
22.5px
;
background
:
#111
;
opacity
:
0.8
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
position
:
absolute
;
top
:
300px
;
right
:
0
;
}
.goods
.Logo
{
padding
:
1px
5px
;
display
:
inline-block
;
font-size
:
22
rpx
;
margin-right
:
5
rpx
;
border-radius
:
4px
;
}
.goods
.screen-swiper
{
min-height
:
375
upx
;
}
.goods
.screen-swiper
image
,
.goods
.screen-swiper
video
{
width
:
100%
;
display
:
block
;
height
:
100%
;
margin
:
0
;
pointer-events
:
none
;
}
.koarea_Country
{
display
:
flex
;
justify-content
:
space-between
;
padding-bottom
:
10px
;
border-bottom
:
1px
solid
#F2F3F6
;
}
.commontList
{
display
:
flex
;
padding
:
0
10px
;
margin-bottom
:
10px
;
}
.goodComentBtn
{
width
:
100%
;
height
:
40px
;
text-align
:
center
;
line-height
:
40px
;
background-color
:
#0b0052
;
color
:
#fff
;
margin-top
:
10px
;
font-size
:
16px
;
}
.fenyeBtn
{
padding
:
3px
6px
;
background-color
:
#00BFFF
;
color
:
#fff
;
font-size
:
12px
;
margin
:
0
10px
20px
0
;
}
.goods-Discount
{
background-color
:
#FFFFFF
;
box-sizing
:
border-box
;
padding
:
15
rpx
30
rpx
;
display
:
flex
;
}
.discount-left
{
width
:
80
rpx
;
font-size
:
26
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
800
;
color
:
#111111
;
box-sizing
:
border-box
;
padding-top
:
15
rpx
;
}
.discount-right
{
flex-grow
:
1
;
}
.discount-item
{
font-size
:
22
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#111111
;
display
:
flex
;
align-items
:
center
;
margin-top
:
15
rpx
;
margin-bottom
:
15
rpx
;
}
.discount-type
{
width
:
52
rpx
;
box-sizing
:
border-box
;
padding
:
0
6
rpx
;
text-align
:
center
;
background-color
:
#C5D6D3
;
border-radius
:
4
rpx
;
font-size
:
20
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#40766E
;
margin-right
:
20
rpx
;
}
.goods
.screen-swiper
image
,
.goods
.screen-swiper
video
{
width
:
100%
;
display
:
block
;
height
:
100%
;
margin
:
0
;
pointer-events
:
none
;
}
.koarea_Country
{
display
:
flex
;
justify-content
:
space-between
;
padding-bottom
:
10px
;
border-bottom
:
1px
solid
#F2F3F6
;
}
.commontList
{
display
:
flex
;
padding
:
0
10px
;
margin-bottom
:
10px
;
}
.goodComentBtn
{
width
:
100%
;
height
:
40px
;
text-align
:
center
;
line-height
:
40px
;
background-color
:
#0b0052
;
color
:
#fff
;
margin-top
:
10px
;
font-size
:
16px
;
}
.fenyeBtn
{
padding
:
3px
6px
;
background-color
:
#00BFFF
;
color
:
#fff
;
font-size
:
12px
;
margin
:
0
10px
20px
0
;
}
.goods-Discount
{
background-color
:
#FFFFFF
;
box-sizing
:
border-box
;
padding
:
15
rpx
30
rpx
;
display
:
flex
;
}
.discount-left
{
width
:
80
rpx
;
font-size
:
26
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
800
;
color
:
#111111
;
box-sizing
:
border-box
;
padding-top
:
15
rpx
;
}
.discount-right
{
flex-grow
:
1
;
}
.discount-item
{
font-size
:
22
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#111111
;
display
:
flex
;
align-items
:
center
;
margin-top
:
15
rpx
;
margin-bottom
:
15
rpx
;
}
.discount-type
{
width
:
52
rpx
;
box-sizing
:
border-box
;
padding
:
0
6
rpx
;
text-align
:
center
;
background-color
:
#C5D6D3
;
border-radius
:
4
rpx
;
font-size
:
20
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#40766E
;
margin-right
:
20
rpx
;
}
</
style
>
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