Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
H
h5-base
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
new-sing
h5-base
Commits
bad54717
Commit
bad54717
authored
Nov 27, 2018
by
王
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
活动修改
parent
39e92c39
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
9 additions
and
3 deletions
+9
-3
index.js
config/index.js
+1
-1
index.html
dev/index.html
+1
-1
8.1481b58146119fa87f84.js
dev/static/js/8.1481b58146119fa87f84.js
+2
-0
8.1481b58146119fa87f84.js.map
dev/static/js/8.1481b58146119fa87f84.js.map
+1
-0
manifest.73a6aae8bcc58f1e95ef.js
dev/static/js/manifest.73a6aae8bcc58f1e95ef.js
+2
-0
manifest.73a6aae8bcc58f1e95ef.js.map
dev/static/js/manifest.73a6aae8bcc58f1e95ef.js.map
+1
-0
index.vue
src/components/buy/index.vue
+1
-1
No files found.
config/index.js
View file @
bad54717
...
@@ -46,7 +46,7 @@ module.exports = {
...
@@ -46,7 +46,7 @@ module.exports = {
// Paths
// Paths
assetsRoot
:
process
.
env
.
NODE_ENV
===
'production'
?
path
.
resolve
(
__dirname
,
'../dist'
)
:
path
.
resolve
(
__dirname
,
'../dev'
),
assetsRoot
:
process
.
env
.
NODE_ENV
===
'production'
?
path
.
resolve
(
__dirname
,
'../dist'
)
:
path
.
resolve
(
__dirname
,
'../dev'
),
assetsSubDirectory
:
'static'
,
assetsSubDirectory
:
'static'
,
assetsPublicPath
:
'https://static-cdn.changchangenglish.com/new-sing/
'
,
assetsPublicPath
:
process
.
env
.
NODE_ENV
===
'production'
?
'https://static-cdn.changchangenglish.com/new-sing/'
:
'
'
,
/**
/**
* Source Maps
* Source Maps
...
...
dev/index.html
View file @
bad54717
...
@@ -4,4 +4,4 @@
...
@@ -4,4 +4,4 @@
hm
.
src
=
"https://hm.baidu.com/hm.js?3d48322170d471164729cba5dfa4195f"
;
hm
.
src
=
"https://hm.baidu.com/hm.js?3d48322170d471164729cba5dfa4195f"
;
var
s
=
document
.
getElementsByTagName
(
"script"
)[
0
];
var
s
=
document
.
getElementsByTagName
(
"script"
)[
0
];
s
.
parentNode
.
insertBefore
(
hm
,
s
);
s
.
parentNode
.
insertBefore
(
hm
,
s
);
})();
</script><style></style><link
href=
https://static-cdn.changchangenglish.com/new-sing/static/css/app.64be2edabff411167c0d49c7bcce245d.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
src=
https://res.wx.qq.com/open/js/jweixin-1.3.2.js
></script><script
src=
https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js
></script><script>
var
vConsole
=
new
VConsole
();
</script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/manifest.9d4e16ba64b2767d55f3.js
></script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/vendor.3ad9f0bc79c82a20862e.js
></script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/app.fa74d3ef47a133531b47.js
></script></body></html>
})();
</script><style></style><link
href=
static/css/app.64be2edabff411167c0d49c7bcce245d.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
src=
https://res.wx.qq.com/open/js/jweixin-1.3.2.js
></script><script
src=
https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js
></script><script>
var
vConsole
=
new
VConsole
();
</script><script
type=
text/javascript
src=
static/js/manifest.73a6aae8bcc58f1e95ef.js
></script><script
type=
text/javascript
src=
static/js/vendor.3ad9f0bc79c82a20862e.js
></script><script
type=
text/javascript
src=
static/js/app.fa74d3ef47a133531b47.js
></script></body></html>
\ No newline at end of file
\ No newline at end of file
dev/static/js/8.1481b58146119fa87f84.js
0 → 100644
View file @
bad54717
webpackJsonp
([
8
],{
"5W4P"
:
function
(
n
,
e
,
t
){(
n
.
exports
=
t
(
"FZ+f"
)(
!
0
)).
push
([
n
.
i
,
"
\n
.fl-r[data-v-ff30e8ae] {
\n
float: right;
\n
}
\n
.main-block[data-v-ff30e8ae] {
\n
margin: 5px;
\n
background: white;
\n
padding: 5px;
\n
}
\n
.clear-both[data-v-ff30e8ae]:after {
\n
content: '';
\n
display: block;
\n
clear: both;
\n
}
\n
[data-v-ff30e8ae]::-webkit-scrollbar-track-piece {
\n
border-radius: 10px;
\n
}
\n
[data-v-ff30e8ae]::-webkit-scrollbar {
\n
width: 5px;
\n
height: 5px;
\n
}
\n
[data-v-ff30e8ae]::-webkit-scrollbar-thumb {
\n
background-color: #999;
\n
border-radius: 10px;
\n
height: 10px;
\n
min-height: 10px;
\n
}
\n
.img-cvs[data-v-ff30e8ae] {
\n
position: absolute;
\n
width: 62.13333333vw;
\n
top: 46.93333333vw;
\n
left: 7.73333333vw;
\n
}
\n
.img-cvs .qrcode[data-v-ff30e8ae] {
\n
position: absolute;
\n
top: 81.33333333vw;
\n
left: 4vw;
\n
width: 16vw;
\n
}
\n
.cvs-img[data-v-ff30e8ae] {
\n
position: absolute;
\n
width: 62.13333333vw;
\n
top: 46.93333333vw;
\n
left: 7.73333333vw;
\n
z-index: 10;
\n
}
\n
.ref-content[data-v-ff30e8ae] {
\n
width: 79.73333333vw;
\n
height: 150.4vw;
\n
background-size: 100% 100%;
\n
position: relative;
\n
}
\n
.ref-content .tips[data-v-ff30e8ae] {
\n
font-size: 12px;
\n
position: absolute;
\n
color: #666;
\n
right: 2.66666667vw;
\n
top: 66.66666667vw;
\n
width: 1em;
\n
}
\n
.group-index[data-v-ff30e8ae] {
\n
height: 100%;
\n
padding-bottom: toVw(150);
\n
background: #f0f0f0;
\n
font-family: PingFangSC-Regular;
\n
}
\n
.group-index .ref-icon[data-v-ff30e8ae] {
\n
position: fixed;
\n
height: 24vw;
\n
top: 70vw;
\n
z-index: 6;
\n
right: 2.66666667vw;
\n
border-radius: 100px;
\n
}
\n
.group-index .banner[data-v-ff30e8ae] {
\n
background: white;
\n
}
\n
.group-index .banner img[data-v-ff30e8ae] {
\n
width: 100%;
\n
}
\n
.group-index .head[data-v-ff30e8ae] {
\n
background: white;
\n
margin-bottom: 10px;
\n
padding: 2.66666667vw;
\n
}
\n
.group-index .head .title[data-v-ff30e8ae] {
\n
font-size: 20px;
\n
color: #333333;
\n
margin-bottom: 2vw;
\n
}
\n
.group-index .head .detail[data-v-ff30e8ae] {
\n
font-size: 12px;
\n
line-height: 1.6em;
\n
color: #333333;
\n
display: block;
\n
margin-bottom: 2vw;
\n
}
\n
.group-index .head .price .price-content[data-v-ff30e8ae] {
\n
font-family: PingFang-SC-Bold;
\n
font-size: 20px;
\n
color: #F83534;
\n
}
\n
.group-index .head-icon[data-v-ff30e8ae] {
\n
padding: 2.66666667vw;
\n
background: white;
\n
margin-bottom: 2px;
\n
}
\n
.group-index .head-icon .icon[data-v-ff30e8ae] {
\n
display: inline-block;
\n
width: 8vw;
\n
margin: 0 1.33333333vw;
\n
border-radius: 1000px;
\n
vertical-align: middle;
\n
}
\n
.group-index .head-icon .more[data-v-ff30e8ae] {
\n
width: 6.66666667vw;
\n
vertical-align: middle;
\n
}
\n
.group-index .head-icon .has[data-v-ff30e8ae] {
\n
font-size: 12px;
\n
line-height: 8vw;
\n
color: #999999;
\n
float: right;
\n
}
\n
.group-index .welfare[data-v-ff30e8ae] {
\n
background: white;
\n
padding: 1.33333333vw;
\n
font-size: 12px;
\n
text-align: center;
\n
color: #999999;
\n
margin-bottom: 20px;
\n
}
\n
.group-index .main-detail[data-v-ff30e8ae] {
\n
padding: 2.66666667vw;
\n
background: white;
\n
}
\n
.group-index .main-detail .tab-content[data-v-ff30e8ae] {
\n
border-radius: 9px ;
\n
border: 1px solid #F63539;
\n
}
\n
.group-index .main-detail .tab-content[data-v-ff30e8ae]:after {
\n
content: '';
\n
display: block;
\n
clear: both;
\n
}
\n
.group-index .main-detail .tab-content .tab-btn[data-v-ff30e8ae] {
\n
width: 50%;
\n
float: left;
\n
height: 10.66666667vw;
\n
line-height: 10.66666667vw;
\n
text-align: center;
\n
color: #F63539;
\n
border-radius: 9px ;
\n
}
\n
.group-index .main-detail .tab-content .tab-btn.active[data-v-ff30e8ae] {
\n
background: #F63539;
\n
color: white;
\n
}
\n
.group-index .main-detail .qa-block[data-v-ff30e8ae] {
\n
padding: 2.66666667vw 0 toVw(150) 0;
\n
}
\n
.group-index .main-detail .qa-block img[data-v-ff30e8ae],
\n
.group-index .main-detail .qa-block video[data-v-ff30e8ae] {
\n
max-width: 100%;
\n
}
\n
.group-index .main-detail .qa-block .qa-content[data-v-ff30e8ae] {
\n
margin: toVw(10) 0;
\n
}
\n
.group-index .main-detail .qa-block .qa-content .qa-q[data-v-ff30e8ae] {
\n
font-size: 16px;
\n
color: #666666;
\n
}
\n
.group-index .main-detail .qa-block .qa-content .qa-a[data-v-ff30e8ae] {
\n
font-size: 16px;
\n
color: #333333;
\n
}
\n
.group-index .main-detail .detail[data-v-ff30e8ae] {
\n
padding: 2.66666667vw 0 20vw 0;
\n
}
\n
.group-index .main-detail .detail .detail-content img[data-v-ff30e8ae],
\n
.group-index .main-detail .detail .detail-content video[data-v-ff30e8ae] {
\n
max-width: 100%;
\n
}
\n
.group-index footer[data-v-ff30e8ae] {
\n
position: absolute;
\n
position: fixed;
\n
bottom: 0;
\n
width: 100%;
\n
height: 16vw;
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
background: white;
\n
padding: 1.33333333vw;
\n
border-top: 1px solid #d8d8d8;
\n
-ms-flex-pack: distribute;
\n
justify-content: space-around;
\n
}
\n
.group-index footer .btn[data-v-ff30e8ae] {
\n
border: 1px solid #cccccc;
\n
border-radius: 8px;
\n
width: 0;
\n
-webkit-box-flex: 2;
\n
-ms-flex-positive: 2;
\n
flex-grow: 2;
\n
text-align: center;
\n
padding: 2vw 0;
\n
margin: 0 1.33333333vw;
\n
line-height: 1.4em;
\n
font-size: 16px;
\n
color: #666666;
\n
}
\n
.group-index footer .btn span[data-v-ff30e8ae] {
\n
display: block;
\n
font-size: 20px;
\n
font-family: PingFang-SC-Bold;
\n
}
\n
.group-index footer .btn img[data-v-ff30e8ae] {
\n
width: 6.66666667vw;
\n
}
\n
.group-index footer .btn.big[data-v-ff30e8ae] {
\n
padding: 0.66666667vw 0;
\n
-webkit-box-flex: 5;
\n
-ms-flex-positive: 5;
\n
flex-grow: 5;
\n
}
\n
.group-index footer .btn.big.price[data-v-ff30e8ae] {
\n
background: #F83534;
\n
border-color: #F83534;
\n
color: white;
\n
}
\n
.group-index .pop-block[data-v-ff30e8ae] {
\n
padding: 5.33333333vw 1.33333333vw;
\n
width: 80vw;
\n
text-align: center;
\n
font-size: 14px;
\n
color: #666666;
\n
position: relative;
\n
}
\n
.group-index .pop-block img[data-v-ff30e8ae] {
\n
width: 33.33333333vw;
\n
}
\n
.group-index .pop-block .close[data-v-ff30e8ae] {
\n
width: 6.66666667vw;
\n
position: absolute;
\n
top: 2.66666667vw;
\n
right: 2.66666667vw;
\n
}
\n
.group-index .mint-popup[data-v-ff30e8ae] {
\n
border-radius: 10px;
\n
}
\n
.group-index .pop-fill[data-v-ff30e8ae] {
\n
width: 66.66666667vw;
\n
padding: 4vw 4vw;
\n
font-size: 16px;
\n
color: #333333;
\n
}
\n
.group-index .pop-fill .btn-block[data-v-ff30e8ae] {
\n
margin-top: 4vw;
\n
}
\n
.group-index .pop-fill .btn-block[data-v-ff30e8ae]:after {
\n
content: '';
\n
display: block;
\n
clear: both;
\n
}
\n
.group-index .pop-fill .btn-block .btn[data-v-ff30e8ae] {
\n
float: right;
\n
background: #F83534;
\n
font-size: 14px;
\n
padding: 0.66666667vw 1.33333333vw;
\n
border-radius: 8px;
\n
color: #FFFFFF;
\n
}
\n
"
,
""
,{
version
:
3
,
sources
:[
"/Users/wang/Documents/changchang/projects/wechat/src/util/public.less"
,
"/Users/wang/Documents/changchang/projects/wechat/src/components/buy/index.vue"
,
"/Users/wang/Documents/changchang/projects/wechat/src/components/buy/index.vue"
],
names
:[],
mappings
:
"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"
,
file
:
"index.vue"
,
sourcesContent
:[
"//颜色参数
\n
@toVw:100/375vw;
\n
@toVh:100/667vh;
\n
@bg-b: #333;
\n
@bg-b-s:#444;
\n
@black-line:#191919;
\n
@gray-line:#666;
\n
@light-line:#ddd;
\n
@main-font-color:#fff;
\n
@secondary-font-color:#999;
\n
@gold-color-light:#FFD04B;
\n
@gold-color: #a18430;
\n\n
//公共类
\n
.fl-r{
\n
float: right;
\n
}
\n
.main-block{
\n
margin: 5px;
\n
background: white;
\n
padding: 5px;
\n
}
\n
html{
\n\n
}
\n
.clear-both{
\n
&:after{
\n
content: '';
\n
display: block;
\n
clear: both;
\n
}
\n
}
\n
//滚动条样式
\n
::-webkit-scrollbar-track-piece { //滚动条凹槽的颜色,还可以设置边框属性
\n
border-radius: 10px;
\n
}
\n
::-webkit-scrollbar {//滚动条的宽度
\n
width:5px;
\n
height:5px;
\n
}
\n
::-webkit-scrollbar-thumb {//滚动条的设置
\n
background-color:@secondary-font-color;
\n
border-radius: 10px;
\n
height: 10px;
\n
min-height:10px;
\n
}
\n
"
,
".fl-r {
\n
float: right;
\n
}
\n
.main-block {
\n
margin: 5px;
\n
background: white;
\n
padding: 5px;
\n
}
\n
.clear-both:after {
\n
content: '';
\n
display: block;
\n
clear: both;
\n
}
\n
::-webkit-scrollbar-track-piece {
\n
border-radius: 10px;
\n
}
\n
::-webkit-scrollbar {
\n
width: 5px;
\n
height: 5px;
\n
}
\n
::-webkit-scrollbar-thumb {
\n
background-color: #999;
\n
border-radius: 10px;
\n
height: 10px;
\n
min-height: 10px;
\n
}
\n
.img-cvs {
\n
position: absolute;
\n
width: 62.13333333vw;
\n
top: 46.93333333vw;
\n
left: 7.73333333vw;
\n
}
\n
.img-cvs .qrcode {
\n
position: absolute;
\n
top: 81.33333333vw;
\n
left: 4vw;
\n
width: 16vw;
\n
}
\n
.cvs-img {
\n
position: absolute;
\n
width: 62.13333333vw;
\n
top: 46.93333333vw;
\n
left: 7.73333333vw;
\n
z-index: 10;
\n
}
\n
.ref-content {
\n
width: 79.73333333vw;
\n
height: 150.4vw;
\n
background-size: 100% 100%;
\n
position: relative;
\n
}
\n
.ref-content .tips {
\n
font-size: 12px;
\n
position: absolute;
\n
color: #666;
\n
right: 2.66666667vw;
\n
top: 66.66666667vw;
\n
width: 1em;
\n
}
\n
.group-index {
\n
height: 100%;
\n
padding-bottom: toVw(150);
\n
background: #f0f0f0;
\n
font-family: PingFangSC-Regular;
\n
}
\n
.group-index .ref-icon {
\n
position: fixed;
\n
height: 24vw;
\n
top: 70vw;
\n
z-index: 6;
\n
right: 2.66666667vw;
\n
border-radius: 100px;
\n
}
\n
.group-index .banner {
\n
background: white;
\n
}
\n
.group-index .banner img {
\n
width: 100%;
\n
}
\n
.group-index .head {
\n
background: white;
\n
margin-bottom: 10px;
\n
padding: 2.66666667vw;
\n
}
\n
.group-index .head .title {
\n
font-size: 20px;
\n
color: #333333;
\n
margin-bottom: 2vw;
\n
}
\n
.group-index .head .detail {
\n
font-size: 12px;
\n
line-height: 1.6em;
\n
color: #333333;
\n
display: block;
\n
margin-bottom: 2vw;
\n
}
\n
.group-index .head .price .price-content {
\n
font-family: PingFang-SC-Bold;
\n
font-size: 20px;
\n
color: #F83534;
\n
}
\n
.group-index .head-icon {
\n
padding: 2.66666667vw;
\n
background: white;
\n
margin-bottom: 2px;
\n
}
\n
.group-index .head-icon .icon {
\n
display: inline-block;
\n
width: 8vw;
\n
margin: 0 1.33333333vw;
\n
border-radius: 1000px;
\n
vertical-align: middle;
\n
}
\n
.group-index .head-icon .more {
\n
width: 6.66666667vw;
\n
vertical-align: middle;
\n
}
\n
.group-index .head-icon .has {
\n
font-size: 12px;
\n
line-height: 8vw;
\n
color: #999999;
\n
float: right;
\n
}
\n
.group-index .welfare {
\n
background: white;
\n
padding: 1.33333333vw;
\n
font-size: 12px;
\n
text-align: center;
\n
color: #999999;
\n
margin-bottom: 20px;
\n
}
\n
.group-index .main-detail {
\n
padding: 2.66666667vw;
\n
background: white;
\n
}
\n
.group-index .main-detail .tab-content {
\n
border-radius: 9px ;
\n
border: 1px solid #F63539;
\n
}
\n
.group-index .main-detail .tab-content:after {
\n
content: '';
\n
display: block;
\n
clear: both;
\n
}
\n
.group-index .main-detail .tab-content .tab-btn {
\n
width: 50%;
\n
float: left;
\n
height: 10.66666667vw;
\n
line-height: 10.66666667vw;
\n
text-align: center;
\n
color: #F63539;
\n
border-radius: 9px ;
\n
}
\n
.group-index .main-detail .tab-content .tab-btn.active {
\n
background: #F63539;
\n
color: white;
\n
}
\n
.group-index .main-detail .qa-block {
\n
padding: 2.66666667vw 0 toVw(150) 0;
\n
}
\n
.group-index .main-detail .qa-block img,
\n
.group-index .main-detail .qa-block video {
\n
max-width: 100%;
\n
}
\n
.group-index .main-detail .qa-block .qa-content {
\n
margin: toVw(10) 0;
\n
}
\n
.group-index .main-detail .qa-block .qa-content .qa-q {
\n
font-size: 16px;
\n
color: #666666;
\n
}
\n
.group-index .main-detail .qa-block .qa-content .qa-a {
\n
font-size: 16px;
\n
color: #333333;
\n
}
\n
.group-index .main-detail .detail {
\n
padding: 2.66666667vw 0 20vw 0;
\n
}
\n
.group-index .main-detail .detail .detail-content img,
\n
.group-index .main-detail .detail .detail-content video {
\n
max-width: 100%;
\n
}
\n
.group-index footer {
\n
position: absolute;
\n
position: fixed;
\n
bottom: 0;
\n
width: 100%;
\n
height: 16vw;
\n
display: -webkit-box;
\n
display: -moz-box;
\n
display: -ms-flexbox;
\n
display: -webkit-flex;
\n
display: flex;
\n
background: white;
\n
padding: 1.33333333vw;
\n
border-top: 1px solid #d8d8d8;
\n
justify-content: space-around;
\n
}
\n
.group-index footer .btn {
\n
border: 1px solid #cccccc;
\n
border-radius: 8px;
\n
width: 0;
\n
flex-grow: 2;
\n
text-align: center;
\n
padding: 2vw 0;
\n
margin: 0 1.33333333vw;
\n
line-height: 1.4em;
\n
font-size: 16px;
\n
color: #666666;
\n
}
\n
.group-index footer .btn span {
\n
display: block;
\n
font-size: 20px;
\n
font-family: PingFang-SC-Bold;
\n
}
\n
.group-index footer .btn img {
\n
width: 6.66666667vw;
\n
}
\n
.group-index footer .btn.big {
\n
padding: 0.66666667vw 0;
\n
flex-grow: 5;
\n
}
\n
.group-index footer .btn.big.price {
\n
background: #F83534;
\n
border-color: #F83534;
\n
color: white;
\n
}
\n
.group-index .pop-block {
\n
padding: 5.33333333vw 1.33333333vw;
\n
width: 80vw;
\n
text-align: center;
\n
font-size: 14px;
\n
color: #666666;
\n
position: relative;
\n
}
\n
.group-index .pop-block img {
\n
width: 33.33333333vw;
\n
}
\n
.group-index .pop-block .close {
\n
width: 6.66666667vw;
\n
position: absolute;
\n
top: 2.66666667vw;
\n
right: 2.66666667vw;
\n
}
\n
.group-index .mint-popup {
\n
border-radius: 10px;
\n
}
\n
.group-index .pop-fill {
\n
width: 66.66666667vw;
\n
padding: 4vw 4vw;
\n
font-size: 16px;
\n
color: #333333;
\n
}
\n
.group-index .pop-fill .btn-block {
\n
margin-top: 4vw;
\n
}
\n
.group-index .pop-fill .btn-block:after {
\n
content: '';
\n
display: block;
\n
clear: both;
\n
}
\n
.group-index .pop-fill .btn-block .btn {
\n
float: right;
\n
background: #F83534;
\n
font-size: 14px;
\n
padding: 0.66666667vw 1.33333333vw;
\n
border-radius: 8px;
\n
color: #FFFFFF;
\n
}
\n
"
,
"
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
@import
\"
../../util/public
\"
;
\n
.img-cvs{
\n
position: absolute;
\n
width: 233 * @toVw;
\n
top: 176 * @toVw;
\n
left: 29 * @toVw;
\n
.qrcode{
\n
position: absolute;
\n
top: 305 * @toVw;
\n
left: 15 * @toVw;
\n
width: 60 * @toVw;
\n
}
\n
}
\n
.cvs-img{
\n
position: absolute;
\n
width: 233 * @toVw;
\n
top: 176 * @toVw;
\n
left: 29 * @toVw;
\n
z-index: 10;
\n
}
\n
.ref-content{
\n
width: 299 * @toVw;
\n
height: 564 * @toVw;
\n
background-size: 100% 100%;
\n
position: relative;
\n
.tips{
\n
font-size: 12px;
\n
position: absolute;
\n
color: #666;
\n
right: 10 * @toVw;
\n
top: 250 * @toVw;
\n
width: 1em;
\n
}
\n
}
\n
.group-index{
\n
height: 100%;
\n
padding-bottom: toVw(150);
\n
background: #f0f0f0;
\n
font-family: PingFangSC-Regular;
\n
.ref-icon{
\n
position: fixed;
\n
height: 100/375 * 90vw ;
\n
top: 70vw;
\n
z-index: 6;
\n
right: 10 * 100 /375vw;
\n
border-radius: 100px;
\n
}
\n
.banner{
\n
background: white;
\n
img{
\n
width: 100%;
\n
}
\n
}
\n
.head{
\n
background: white;
\n
margin-bottom: 10px;
\n
padding: 20/7.5vw;
\n
.title{
\n
font-size: 20px;
\n
color: #333333;
\n
margin-bottom: 15/7.5vw;
\n
}
\n
.detail{
\n
font-size: 12px;
\n
line-height: 1.6em;
\n
color: #333333;
\n
display: block;
\n
margin-bottom: 15/7.5vw;
\n
}
\n
.price{
\n
.price-content{
\n
font-family: PingFang-SC-Bold;
\n
font-size: 20px;
\n
color: #F83534;
\n
}
\n
}
\n
}
\n
.head-icon{
\n
padding: 20/7.5vw;
\n
background: white;
\n
margin-bottom: 2px;
\n
.icon{
\n
display: inline-block;
\n
width: 60/7.5vw;
\n
margin: 0 10/7.5vw;
\n
border-radius: 1000px;
\n
vertical-align: middle;
\n
}
\n
.more{
\n
width: 50/7.5vw;
\n
vertical-align: middle;
\n
}
\n
.has{
\n
font-size: 12px;
\n
line-height: 60/7.5vw;
\n
color: #999999;
\n
float: right;
\n
}
\n
}
\n
.welfare{
\n
background: white;
\n
padding:10/7.5vw ;
\n
font-size: 12px;
\n
text-align: center;
\n
color: #999999;
\n
margin-bottom: 20px;
\n
}
\n
.main-detail{
\n
padding: 20/7.5vw;
\n
background: white;
\n
.tab-content{
\n
border-radius: 9px ;
\n
border: 1px solid #F63539;
\n
&:after{
\n
content: '';
\n
display: block;
\n
clear: both;
\n
}
\n
.tab-btn{
\n
width: 50%;
\n
float: left;
\n
height: 80/7.5vw;
\n
line-height: 80/7.5vw;
\n
text-align: center;
\n
color: #F63539;
\n
border-radius:9px ;
\n
&.active{
\n
background: #F63539;
\n
color: white;
\n
}
\n
}
\n
}
\n
.qa-block{
\n
padding: 20/7.5vw 0 toVw(150) 0;
\n
img,video{
\n
max-width: 100%;
\n
}
\n
.qa-content{
\n
margin: toVw(10) 0;
\n
.qa-q{
\n
font-size: 16px;
\n
color: #666666;
\n
}
\n
.qa-a{
\n
font-size: 16px;
\n
color: #333333;
\n
}
\n
}
\n
}
\n
.detail{
\n
padding: 20/7.5vw 0 150/7.5vw 0;
\n
.detail-content{
\n
img,video{
\n
max-width: 100%;
\n
}
\n
}
\n\n
}
\n
}
\n
footer{
\n
position: absolute;
\n
position: fixed;
\n
bottom: 0;
\n
width: 100%;
\n
height: 120/7.5vw;
\n
display: -webkit-box; // OLD - iOS 6-, Safari 3.1-6 //
\n
display: -moz-box; // OLD - Firefox 19- (buggy but mostly works) //
\n
display: -ms-flexbox; // TWEENER - IE 10 //
\n
display: -webkit-flex; // NEW - Chrome //
\n
display: flex; // NEW, Spec - Opera 12.1, Firefox 20+ //
\n
background: white;
\n
padding: 10/7.5vw;
\n
border-top: 1px solid #d8d8d8;
\n
justify-content:space-around;
\n
.btn{
\n
border: 1px solid #cccccc;
\n
border-radius: 8px;
\n
width:0;
\n
flex-grow:2;
\n
text-align: center;
\n
padding: 15/7.5vw 0;
\n
margin: 0 10/7.5vw;
\n
line-height: 1.4em;
\n
font-size: 16px;
\n
color: #666666;
\n
span{
\n
display: block;
\n
font-size: 20px;
\n
font-family: PingFang-SC-Bold;
\n
}
\n
img{
\n
width: 50/7.5vw;
\n
}
\n
&.big{
\n
padding: 5/7.5vw 0;
\n
flex-grow:5;
\n
&.price{
\n
background: #F83534;
\n
border-color: #F83534;
\n
color: white;
\n
}
\n
}
\n
}
\n
}
\n
.pop-block{
\n
padding:40/7.5vw 10/7.5vw;
\n
width: 600/7.5vw;
\n
text-align: center;
\n
font-size: 14px;
\n
color: #666666;
\n
position: relative;
\n
img{
\n
width: 250/7.5vw;
\n
}
\n
.close{
\n
width: 50/7.5vw;
\n
position: absolute;
\n
top: 20/7.5vw;
\n
right: 20/7.5vw;
\n
}
\n
}
\n
.mint-popup{
\n
border-radius: 10px;
\n
}
\n
.pop-fill{
\n
width: 500/7.5vw;
\n
padding:30/7.5vw 30/7.5vw;
\n
font-size: 16px;
\n
color: #333333;
\n
.btn-block{
\n
margin-top: 30/7.5vw;
\n
&:after{
\n
content:'';
\n
display: block;
\n
clear: both;
\n
}
\n
.btn{
\n
float: right;
\n
background: #F83534;
\n
font-size: 14px;
\n
padding: 5/7.5vw 10/7.5vw;
\n
border-radius: 8px;
\n
color: #FFFFFF;
\n
}
\n
}
\n
}
\n\n
}
\n\n
"
],
sourceRoot
:
""
}])},
"9Nk9"
:
function
(
n
,
e
,
t
){
var
i
=
t
(
"yEDY"
);
"string"
==
typeof
i
&&
(
i
=
[[
n
.
i
,
i
,
""
]]),
i
.
locals
&&
(
n
.
exports
=
i
.
locals
);
t
(
"rjj0"
)(
"3d1e8a62"
,
i
,
!
1
,{})},
bNYG
:
function
(
n
,
e
,
t
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
});
t
(
"v2ns"
);
var
i
=
t
(
"7QTg"
),
o
=
t
(
"MJLE"
),
a
=
t
.
n
(
o
),
r
=
t
(
"Au9i"
),
s
=
t
(
"CCn6"
),
d
=
t
(
"E26C"
),
l
=
t
.
n
(
d
),
p
=
t
(
"kXdI"
),
c
=
t
.
n
(
p
),
g
=
(
t
(
"1UEi"
),
t
(
"XaoW"
)),
A
=
t
.
n
(
g
),
u
=
t
(
"zpE/"
),
h
=
t
.
n
(
u
),
f
=
t
(
"0ZjB"
),
v
=
t
.
n
(
f
),
w
=
t
(
"2Pnh"
),
m
=
t
.
n
(
w
),
b
=
{
name
:
"index"
,
components
:{
swiper
:
i
.
swiper
,
swiperSlide
:
i
.
swiperSlide
},
data
:
function
(){
return
{
refBg
:
l
.
a
,
join
:
!
1
,
popType
:
!
1
,
popFill
:
!
1
,
popupVisible
:
!
1
,
refVisible
:
!
1
,
tabType
:
!
0
,
popcontentW
:
"您已经购买过课程,无需重复<br>购买,您可以添加微信公众号了解更多"
,
popcontentT
:
"为了更好地为您进行课程服务,<br>请扫码添加老师二维码"
,
qrCode
:
h
.
a
,
weChatIcon
:
A
.
a
,
closeUrl
:
v
.
a
,
moreUrl
:
c
.
a
,
refIcon
:
"https://cdn.singsingenglish.com/new-sing/b7f43ced8f8268655c2c5b289360df990ec8f18e.png"
,
swiperOption
:{
pagination
:{
el
:
".swiper-pagination"
}},
QRCodeB
:
!
1
,
dataURL
:
null
,
user_id
:
null
,
invite_code_f
:
!
0
,
invite_code
:
""
,
shopId
:
""
,
groupId
:
null
,
groupDetail
:
!
1
,
groupData
:
null
}},
mounted
:
function
(){
this
.
getDetail
()},
methods
:{
goToActivity
:
function
(){
var
n
=
{};
window
.
location
.
href
.
indexOf
(
"shopId"
)
>-
1
&&
(
n
.
shopId
=
this
.
$route
.
query
.
shopId
),
window
.
location
.
href
.
indexOf
(
"groupId"
)
>-
1
&&
(
n
.
groupId
=
this
.
$route
.
query
.
groupId
),
window
.
location
.
href
.
indexOf
(
"invite_code"
)
>-
1
&&
(
n
.
invite_code
=
this
.
$route
.
query
.
invite_code
),
this
.
$router
.
push
({
name
:
"activity"
,
query
:
n
})},
refshow
:
function
(){
var
n
=
this
;
if
(
r
.
Indicator
.
open
(),
document
.
body
.
scrollTop
<
10
&&
(
document
.
body
.
scrollTop
=
20
,
document
.
documentElement
.
scrollTop
=
20
),
localStorage
.
getItem
(
"cc_token"
)
&&
""
!==
localStorage
.
getItem
(
"cc_token"
))
setTimeout
(
function
(){
r
.
Indicator
.
close
(),
n
.
invite_code
||
(
n
.
invite_code
=
"CC-USER"
),
Object
(
s
.
q
)().
then
(
function
(
e
){
n
.
user_id
=
e
.
user_id
;
var
t
=
n
.
invite_code
.
split
(
"-"
);
t
.
length
>
2
&&
"TEACHER"
===
t
[
1
]
&&
(
t
[
1
]
=
"USER"
);
var
i
=
t
[
0
]
+
"-"
+
t
[
1
],
o
=
"https://wechat-test.changchangenglish.com/#/buyDetail?shopId="
+
n
.
shopId
+
"&invite_code="
+
i
+
"-"
+
n
.
user_id
;
n
.
groupId
&&
"null"
!==
n
.
groupId
&&
(
o
+=
"&groupId="
+
n
.
groupId
),
console
.
log
(
o
),
n
.
qrcode
(
o
),
n
.
refVisible
=!
0
,
n
.
$nextTick
(
function
(){
n
.
dataURL
||
setTimeout
(
function
(){
var
e
=
document
.
getElementById
(
"capture"
).
getClientRects
()[
0
],
t
=
(
e
.
height
,
e
.
width
);
document
.
getElementById
(
"capture"
).
style
.
width
=
t
+
"px"
;
n
.
getOffsetRect
(
n
.
$refs
.
imageWrapper
);
var
i
=
document
.
getElementById
(
"capture"
).
getClientRects
()[
0
],
o
=
i
.
height1
,
a
=
i
.
width1
;
m
()(
document
.
getElementById
(
"capture"
),{
async
:
!
0
,
timeout
:
500
,
scrollX
:
1
,
scale
:
3
,
width
:
a
,
height
:
o
,
letterRendering
:
!
0
}).
then
(
function
(
e
){
var
t
=
e
.
toDataURL
(
"image/jpg"
);
n
.
dataURL
=
t
}).
catch
(
function
(
n
){
alert
(
n
),
console
.
log
()})},
500
)})})},
500
);
else
{
var
e
=
{
retUrl
:
this
.
$route
.
fullPath
,
is_new_user_url
:
"1"
};
this
.
$router
.
push
({
name
:
"author"
,
query
:
e
})}},
getOffsetRect
:
function
(
n
){
var
e
=
n
.
getBoundingClientRect
(),
t
=
document
.
body
,
i
=
document
.
documentElement
,
o
=
window
.
pageYOffset
||
i
.
scrollTop
||
t
.
scrollTop
,
a
=
window
.
pageXOffset
||
i
.
scrollLeft
||
t
.
scrollLeft
,
r
=
i
.
clientTop
||
t
.
clientTop
,
s
=
i
.
clientLeft
||
t
.
clientLeft
,
d
=
e
.
top
+
o
-
r
,
l
=
e
.
left
+
a
-
s
;
return
{
top
:
Math
.
round
(
d
),
left
:
Math
.
round
(
l
)}},
qrcode
:
function
(
n
){
this
.
QRCodeB
?
this
.
QRCodeB
.
makeCode
(
n
):
this
.
QRCodeB
=
new
a
.
a
(
"qrcode"
,{
width
:
80
,
height
:
80
,
text
:
n
,
image
:
""
})},
enableShare
:
function
(
n
){
var
e
=
this
;
Object
(
s
.
t
)({
api_list
:
"onMenuShareAppMessage,onMenuShareTimeline"
,
url
:
window
.
location
.
href
.
split
(
"#"
)[
0
]}).
then
(
function
(
t
){
wx
.
config
({
debug
:
!
1
,
appId
:
t
.
appId
,
timestamp
:
parseInt
(
t
.
timestamp
),
nonceStr
:
t
.
nonceStr
,
signature
:
t
.
signature
,
jsApiList
:
t
.
jsApiList
}),
wx
.
ready
(
function
(){
wx
.
onMenuShareTimeline
({
title
:
n
.
product_title
,
desc
:
n
.
desc
,
link
:
n
.
shareUrl
,
imgUrl
:
n
.
shareIcon
||
"https://cdn.singsingenglish.com/singsing/recommend/logo-refer.png"
,
success
:
function
(){
console
.
log
(
"分享成功"
),
window
.
_hmt
.
push
([
"_trackEvent"
,
"分享"
,
"商品页好友分享"
,
"id"
+
e
.
shopId
,
e
.
invite_code
])},
cancel
:
function
(){
console
.
log
(
"分享失败"
)}}),
wx
.
onMenuShareAppMessage
({
title
:
n
.
product_title
,
desc
:
n
.
desc
,
link
:
n
.
shareUrl
,
imgUrl
:
n
.
shareIcon
||
"https://cdn.singsingenglish.com/singsing/recommend/logo-refer.png"
,
success
:
function
(){
window
.
_hmt
.
push
([
"_trackEvent"
,
"分享"
,
"商品页朋友圈分享"
,
"id"
+
e
.
shopId
,
e
.
invite_code
])},
cancel
:
function
(){}})})})},
onShare
:
function
(
n
){
var
e
=
"https://wechat-test.changchangenglish.com/#/buyDetail??shopId="
+
this
.
shopId
+
"&groupId="
+
this
.
groupId
+
"&invite_code="
+
this
.
invite_code
;
1
===
n
&&
(
e
=
"https://wechat-test.changchangenglish.com/#/buyDetail??shopId="
+
this
.
shopId
+
"&invite_code="
+
this
.
invite_code
),
this
.
enableShare
({
product_title
:
this
.
groupDetail
.
share_desc
.
title
,
desc
:
this
.
groupDetail
.
share_desc
.
content
,
shareIcon
:
this
.
groupDetail
.
share_desc
.
img
[
0
].
url
,
shareUrl
:
e
})},
toDataURLBase64
:
function
(
n
,
e
){
var
t
=
new
XMLHttpRequest
;
t
.
onload
=
function
(){
var
n
=
new
FileReader
;
n
.
onloadend
=
function
(){
e
(
n
.
result
)},
n
.
readAsDataURL
(
t
.
response
)},
t
.
responseType
=
"blob"
,
t
.
open
(
"GET"
,
n
,
!
0
),
t
.
send
()},
getDetail
:
function
(){
var
n
=
this
;
window
.
location
.
href
.
indexOf
(
"invite_code"
)
>-
1
&&
(
this
.
invite_code
=
this
.
$route
.
query
.
invite_code
,
this
.
invite_code
.
split
(
"-"
).
length
<
3
&&
(
this
.
invite_code_f
=!
1
));
window
.
location
.
href
.
indexOf
(
"shopId"
)
>-
1
&&
(
this
.
shopId
=
this
.
$route
.
query
.
shopId
,
Object
(
s
.
d
)(
this
.
shopId
).
then
(
function
(
e
){
if
(
e
.
desc
=
JSON
.
parse
(
e
.
desc
),
e
.
goods_desc
=
JSON
.
parse
(
e
.
goods_desc
),
e
.
share_desc
=
JSON
.
parse
(
e
.
share_desc
),
2
===
e
.
status
&&
e
.
bind_goods_id
)
return
n
.
$router
.
push
({
name
:
"buyDetail"
,
query
:{
shopId
:
e
.
bind_goods_id
}}),
void
n
.
getDetail
();
n
.
groupDetail
=
e
;
for
(
var
t
=
0
;
t
<
n
.
groupDetail
.
header_url
.
length
;
t
++
)
n
.
groupDetail
.
header_url
[
t
]
=
n
.
groupDetail
.
header_url
[
t
].
replace
(
"http://"
,
"https://"
);
if
(
n
.
groupDetail
.
desc
.
detail
=
n
.
groupDetail
.
desc
.
detail
.
replace
(
/http:
\/\/
/g
,
"https://"
),
n
.
groupDetail
.
desc
.
qa
=
n
.
groupDetail
.
desc
.
qa
.
replace
(
/http:
\/\/
/g
,
"https://"
),
n
.
groupDetail
.
share_desc
.
refImg
&&
1
===
n
.
groupDetail
.
share_desc
.
refImg
.
length
){
n
.
groupDetail
.
share_desc
.
refImg
[
0
].
url
=
n
.
groupDetail
.
share_desc
.
refImg
[
0
].
url
.
replace
(
"http://"
,
"https://"
);
var
i
=
n
;
n
.
toDataURLBase64
(
n
.
groupDetail
.
share_desc
.
refImg
[
0
].
url
,
function
(
n
){
i
.
groupDetail
.
share_desc
.
refImg
[
0
].
url
=
n
})}
2
===
n
.
groupDetail
.
goods_type
&&
(
localStorage
.
getItem
(
"cc_token"
)
&&
Object
(
s
.
n
)({
goods_id
:
n
.
shopId
}).
then
(
function
(
e
){
e
.
out_trade_no
&&
n
.
$router
.
push
({
name
:
"success"
,
query
:{
out_trade_no
:
e
.
out_trade_no
}})}),
window
.
location
.
href
.
indexOf
(
"groupId"
)
>-
1
?(
n
.
groupId
=
n
.
$route
.
query
.
groupId
,
Object
(
s
.
f
)(
n
.
groupId
).
then
(
function
(
e
){
n
.
groupData
=
e
}),
n
.
onShare
(
0
)):
n
.
onShare
(
1
))}))},
showTeacher
:
function
(){
this
.
popType
=!
1
,
this
.
popupVisible
=!
0
},
groupPay
:
function
(
n
){
var
e
=
{
shopId
:
this
.
shopId
,
invite_code
:
this
.
invite_code
};
this
.
groupId
&&
(
e
.
group_order_id
=
this
.
groupId
),
0
!==
n
||
this
.
groupId
?
0
===
n
&&
this
.
groupId
?(
window
.
location
.
href
=
"/#/buyDetail?shopId="
+
this
.
shopId
,
window
.
_hmt
.
push
([
"_trackEvent"
,
"购买"
,
"商品页团购重新开团"
,
"id"
+
this
.
shopId
,
this
.
invite_code
])):(
window
.
_hmt
.
push
([
"_trackEvent"
,
"购买"
,
"商品页购买"
,
"id"
+
this
.
shopId
,
this
.
invite_code
]),
e
.
type
=
""
):(
e
.
type
=
"single"
,
window
.
_hmt
.
push
([
"_trackEvent"
,
"购买"
,
"商品页团购单独购买"
,
"id"
+
this
.
shopId
,
this
.
invite_code
])),
this
.
$router
.
push
({
name
:
"buy"
,
query
:
e
})}}},
x
=
function
(){
var
n
=
this
,
e
=
n
.
$createElement
,
t
=
n
.
_self
.
_c
||
e
;
return
n
.
groupDetail
?
t
(
"div"
,{
ref
:
"index"
,
staticClass
:
"group-index"
},[
t
(
"swiper"
,{
ref
:
"mySwiper"
,
staticClass
:
"banner"
,
attrs
:{
options
:
n
.
swiperOption
}},[
n
.
_l
(
n
.
groupDetail
.
goods_desc
.
img
,
function
(
e
,
i
){
return
n
.
groupDetail
.
goods_desc
?
t
(
"swiper-slide"
,{
key
:
i
},[
t
(
"img"
,{
attrs
:{
src
:
e
.
url
}})]):
n
.
_e
()}),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"swiper-pagination"
,
attrs
:{
slot
:
"pagination"
},
slot
:
"pagination"
})],
2
),
n
.
_v
(
" "
),
1
===
n
.
groupDetail
.
is_auth_user
?
t
(
"img"
,{
staticClass
:
"ref-icon"
,
attrs
:{
src
:
n
.
refIcon
},
on
:{
click
:
function
(
e
){
n
.
goToActivity
()}}}):
n
.
_e
(),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"head"
},[
t
(
"div"
,{
staticClass
:
"title"
},[
n
.
_v
(
"
\n
"
+
n
.
_s
(
n
.
groupDetail
.
name
)
+
"
\n
"
)]),
n
.
_v
(
" "
),
t
(
"span"
,{
staticClass
:
"detail"
},[
n
.
_v
(
"
\n
"
+
n
.
_s
(
n
.
groupDetail
.
goods_desc
.
desc
)
+
"
\n
"
)]),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"price"
},[
t
(
"span"
,{
staticClass
:
"price-content"
},[
n
.
_v
(
"¥"
+
n
.
_s
(
n
.
groupDetail
.
current_price
/
100
)
+
"元"
)])])]),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"head-icon"
},[
n
.
_l
(
n
.
groupDetail
.
header_url
,
function
(
e
,
i
){
return
i
<
5
?
t
(
"img"
,{
key
:
e
,
staticClass
:
"icon"
,
attrs
:{
src
:
e
}}):
n
.
_e
()}),
n
.
_v
(
" "
),
t
(
"img"
,{
staticClass
:
"more"
,
attrs
:{
src
:
n
.
moreUrl
}}),
n
.
_v
(
" "
),
t
(
"span"
,{
staticClass
:
"has"
},[
n
.
_v
(
"已售"
+
n
.
_s
(
n
.
groupDetail
.
has_group_num
)
+
"件"
)])],
2
),
n
.
_v
(
" "
),
n
.
groupDetail
.
head_welfare
&&
""
!==
n
.
groupDetail
.
head_welfare
&&
null
!==
n
.
groupDetail
.
head_welfare
?
t
(
"div"
,{
staticClass
:
"welfare"
},[
n
.
_v
(
"
\n
团长福利:"
+
n
.
_s
(
n
.
groupDetail
.
head_welfare
)
+
"
\n
"
)]):
n
.
_e
(),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"main-detail"
},[
t
(
"div"
,{
staticClass
:
"tab-content"
},[
t
(
"div"
,{
class
:{
"tab-btn"
:
!
0
,
active
:
n
.
tabType
},
on
:{
click
:
function
(
e
){
n
.
tabType
=!
0
}}},[
n
.
_v
(
"图文详情"
)]),
n
.
_v
(
" "
),
t
(
"div"
,{
class
:{
"tab-btn"
:
!
0
,
active
:
!
n
.
tabType
},
on
:{
click
:
function
(
e
){
n
.
tabType
=!
1
}}},[
n
.
_v
(
"购买须知"
)])]),
n
.
_v
(
" "
),
n
.
tabType
?
t
(
"div"
,{
staticClass
:
"detail"
},[
t
(
"div"
,{
staticClass
:
"detail-content"
,
domProps
:{
innerHTML
:
n
.
_s
(
n
.
groupDetail
.
desc
.
detail
)}})]):
n
.
_e
(),
n
.
_v
(
" "
),
n
.
tabType
?
n
.
_e
():
t
(
"div"
,{
staticClass
:
"qa-block"
},[
t
(
"div"
,{
staticClass
:
"qa-content qaDetail"
,
domProps
:{
innerHTML
:
n
.
_s
(
n
.
groupDetail
.
desc
.
qa
)}})])]),
n
.
_v
(
" "
),
t
(
"mt-popup"
,{
model
:{
value
:
n
.
popupVisible
,
callback
:
function
(
e
){
n
.
popupVisible
=
e
},
expression
:
"popupVisible"
}},[
t
(
"div"
,{
staticClass
:
"pop-block"
},[
n
.
popType
?
t
(
"img"
,{
attrs
:{
src
:
n
.
qrCode
}}):
n
.
_e
(),
n
.
_v
(
" "
),
n
.
popType
?
n
.
_e
():
t
(
"img"
,{
attrs
:{
src
:
n
.
groupDetail
.
desc
.
customer_service
[
0
].
url
}}),
n
.
_v
(
" "
),
t
(
"div"
,[
n
.
popType
?
t
(
"span"
,{
domProps
:{
innerHTML
:
n
.
_s
(
n
.
popcontentW
)}}):
n
.
_e
(),
n
.
_v
(
" "
),
n
.
popType
?
n
.
_e
():
t
(
"span"
,{
domProps
:{
innerHTML
:
n
.
_s
(
n
.
popcontentT
)}})]),
n
.
_v
(
" "
),
t
(
"img"
,{
staticClass
:
"close"
,
attrs
:{
src
:
n
.
closeUrl
},
on
:{
click
:
function
(
e
){
n
.
popupVisible
=!
1
}}})])]),
n
.
_v
(
" "
),
t
(
"mt-popup"
,{
attrs
:{
closeOnClickModal
:
!
1
},
model
:{
value
:
n
.
popFill
,
callback
:
function
(
e
){
n
.
popFill
=
e
},
expression
:
"popFill"
}},[
t
(
"div"
,{
staticClass
:
"pop-fill"
},[
n
.
_v
(
"
\n
您好,本次拼团已经结束。您可以选择重新开团或单独购买
\n
"
),
t
(
"div"
,{
staticClass
:
"btn-block"
},[
t
(
"div"
,{
staticClass
:
"btn"
,
on
:{
click
:
function
(
e
){
n
.
rePlay
()}}},[
n
.
_v
(
"重新开团"
)])])])]),
n
.
_v
(
" "
),
t
(
"mt-popup"
,{
staticStyle
:{
"background-color"
:
"transparent"
,
"margin-top"
:
"-80vw"
,
"margin-left"
:
"-40vw"
,
transform
:
"none"
},
model
:{
value
:
n
.
refVisible
,
callback
:
function
(
e
){
n
.
refVisible
=
e
},
expression
:
"refVisible"
}},[
n
.
groupDetail
.
share_desc
.
refImg
&&
n
.
groupDetail
.
share_desc
.
refImg
.
length
>
0
?
t
(
"div"
,{
staticClass
:
"ref-content"
,
style
:{
backgroundImage
:
"url("
+
n
.
refBg
+
")"
}},[
t
(
"div"
,{
staticClass
:
"tips"
},[
n
.
_v
(
"
\n
长按保存图片
\n
"
)])]):
n
.
_e
(),
n
.
_v
(
" "
),
n
.
groupDetail
.
share_desc
.
refImg
&&
n
.
groupDetail
.
share_desc
.
refImg
.
length
>
0
?
t
(
"div"
,{
ref
:
"imageWrapper"
,
staticClass
:
"img-cvs"
,
attrs
:{
id
:
"capture"
}},[
t
(
"img"
,{
attrs
:{
src
:
n
.
groupDetail
.
share_desc
.
refImg
[
0
].
url
}}),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"qrcode"
,
attrs
:{
id
:
"qrcode"
}})]):
n
.
_e
(),
n
.
_v
(
" "
),
t
(
"img"
,{
staticClass
:
"cvs-img"
,
attrs
:{
src
:
n
.
dataURL
}})]),
n
.
_v
(
" "
),
1
===
n
.
groupDetail
.
status
&&
n
.
invite_code_f
?
t
(
"div"
,[
n
.
groupDetail
.
goods_type
&&
2
===
n
.
groupDetail
.
goods_type
?
t
(
"footer"
,[
t
(
"div"
,{
staticClass
:
"btn"
,
on
:{
click
:
function
(
e
){
n
.
showTeacher
()}}},[
t
(
"img"
,{
attrs
:{
src
:
n
.
weChatIcon
}})]),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"btn big"
,
attrs
:{
id
:
n
.
groupId
?
"reGroup"
:
"singleBuy"
},
on
:{
click
:
function
(
e
){
n
.
groupPay
(
0
)}}},[
n
.
groupId
?
n
.
_e
():
t
(
"span"
,[
n
.
_v
(
"¥"
+
n
.
_s
(
n
.
groupDetail
.
original_price
/
100
))]),
n
.
_v
(
" "
),
n
.
groupId
?
n
.
_e
():
t
(
"div"
,[
n
.
_v
(
"单独购"
)]),
n
.
_v
(
" "
),
n
.
groupId
?
t
(
"span"
,[
n
.
_v
(
"¥"
+
n
.
_s
(
n
.
groupDetail
.
current_price
/
100
))]):
n
.
_e
(),
n
.
_v
(
" "
),
n
.
groupId
?
t
(
"div"
,[
n
.
_v
(
"重新开团"
)]):
n
.
_e
()]),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"btn big price"
,
attrs
:{
id
:
n
.
groupId
?
"joinGroup"
:
"newGroup"
},
on
:{
click
:
function
(
e
){
n
.
groupPay
(
1
)}}},[
t
(
"span"
,[
n
.
_v
(
"¥"
+
n
.
_s
(
n
.
groupDetail
.
current_price
/
100
))]),
n
.
_v
(
" "
),
n
.
groupId
?
n
.
_e
():
t
(
"div"
,[
n
.
_v
(
n
.
_s
(
n
.
groupDetail
.
desc
.
group_number
)
+
"人团"
)]),
n
.
_v
(
" "
),
n
.
groupId
?
t
(
"div"
,[
n
.
_v
(
"立即参团"
)]):
n
.
_e
()])]):
n
.
_e
(),
n
.
_v
(
" "
),
n
.
groupDetail
.
goods_type
&&
2
!==
n
.
groupDetail
.
goods_type
?
t
(
"footer"
,[
t
(
"div"
,{
staticClass
:
"btn"
,
on
:{
click
:
function
(
e
){
n
.
showTeacher
()}}},[
t
(
"img"
,{
attrs
:{
src
:
n
.
weChatIcon
}})]),
n
.
_v
(
" "
),
t
(
"div"
,{
staticClass
:
"btn big price"
,
on
:{
click
:
function
(
e
){
n
.
groupPay
(
1
)}}},[
t
(
"span"
,[
n
.
_v
(
"¥"
+
n
.
_s
(
n
.
groupDetail
.
current_price
/
100
))]),
n
.
_v
(
" "
),
t
(
"div"
,[
n
.
_v
(
"立即购买"
)])])]):
n
.
_e
()]):
n
.
_e
(),
n
.
_v
(
" "
),
1
!==
n
.
groupDetail
.
status
?
t
(
"div"
,[
n
.
_m
(
0
)]):
n
.
_e
()],
1
):
n
.
_e
()};
x
.
_withStripped
=!
0
;
var
_
=
{
render
:
x
,
staticRenderFns
:[
function
(){
var
n
=
this
.
$createElement
,
e
=
this
.
_self
.
_c
||
n
;
return
e
(
"footer"
,[
e
(
"div"
,{
staticStyle
:{
color
:
"#888"
}},[
this
.
_v
(
"
\n
已售罄
\n
"
)])])}]},
C
=
_
;
var
D
=!
1
;
var
E
=
t
(
"VU/8"
)(
b
,
C
,
!
1
,
function
(
n
){
D
||
(
t
(
"9Nk9"
),
t
(
"rC6I"
))},
"data-v-ff30e8ae"
,
null
);
E
.
options
.
__file
=
"src/components/buy/index.vue"
;
e
.
default
=
E
.
exports
},
rC6I
:
function
(
n
,
e
,
t
){
var
i
=
t
(
"5W4P"
);
"string"
==
typeof
i
&&
(
i
=
[[
n
.
i
,
i
,
""
]]),
i
.
locals
&&
(
n
.
exports
=
i
.
locals
);
t
(
"rjj0"
)(
"7d03ddee"
,
i
,
!
1
,{})},
yEDY
:
function
(
n
,
e
,
t
){(
n
.
exports
=
t
(
"FZ+f"
)(
!
0
)).
push
([
n
.
i
,
"
\n
img,video{
\n
max-width: 100%;
\n
}
\n
"
,
""
,{
version
:
3
,
sources
:[
"/Users/wang/Documents/changchang/projects/wechat/src/components/buy/src/components/buy/index.vue"
],
names
:[],
mappings
:
";AA2aA;EACA,gBAAA;CACA"
,
file
:
"index.vue"
,
sourcesContent
:[
'<template>
\
n <div class="group-index" ref="index" v-if="groupDetail">
\
n <swiper :options="swiperOption" class="banner" ref="mySwiper">
\
n <swiper-slide v-if="groupDetail.goods_desc" v-for="(data,index) in groupDetail.goods_desc.img" :key="index">
\
n <img :src="data.url"/>
\
n </swiper-slide>
\
n <div class="swiper-pagination" slot="pagination"></div>
\
n </swiper>
\
n <img :src="refIcon" class="ref-icon" @click="goToActivity()" v-if="groupDetail.is_auth_user === 1">
\
n <div class="head">
\
n <div class="title">
\
n {{groupDetail.name}}
\
n </div>
\
n <span class="detail">
\
n {{groupDetail.goods_desc.desc}}
\
n </span>
\
n <div class="price">
\
n <span class="price-content">¥{{groupDetail.current_price/100}}元</span>
\
n </div>
\
n </div>
\
n <div class="head-icon">
\
n <img class="icon" v-for="(data,index) in groupDetail.header_url" v-if="index<5" :src="data" :key="data">
\
n <img class="more" :src="moreUrl"/>
\
n <span class="has">已售{{groupDetail.has_group_num}}件</span>
\
n </div>
\
n <div class="welfare" v-if="groupDetail.head_welfare && groupDetail.head_welfare !==
\'\'
&& groupDetail.head_welfare !== null">
\
n 团长福利:{{groupDetail.head_welfare}}
\
n </div>
\
n <div class="main-detail">
\
n <div class="tab-content">
\
n <div :class="{
\'
tab-btn
\'
:true,active:tabType}" @click="tabType=true">图文详情</div>
\
n <div :class="{
\'
tab-btn
\'
:true,active:!tabType}" @click="tabType=false">购买须知</div>
\
n </div>
\
n <div v-if="tabType" class="detail">
\
n <div v-html="groupDetail.desc.detail" class="detail-content"></div>
\
n </div>
\
n <div v-if="!tabType" class="qa-block">
\
n <div class="qa-content qaDetail" v-html="groupDetail.desc.qa">
\
n </div>
\
n </div>
\
n </div>
\
n <mt-popup v-model="popupVisible">
\
n <div class="pop-block">
\
n <img v-if="popType" :src="qrCode"/>
\
n <img v-if="!popType" :src="groupDetail.desc.customer_service[0].url"/>
\
n <div>
\
n <span v-if="popType" v-html="popcontentW"></span>
\
n <span v-if="!popType" v-html="popcontentT"></span>
\
n </div>
\
n <img class="close" :src="closeUrl" @click="popupVisible = false">
\
n </div>
\
n </mt-popup>
\
n <mt-popup v-model="popFill" :closeOnClickModal="false">
\
n <div class="pop-fill">
\
n 您好,本次拼团已经结束。您可以选择重新开团或单独购买
\
n <div class="btn-block">
\
n <div class="btn" @click="rePlay()">重新开团</div>
\
n </div>
\
n </div>
\
n </mt-popup>
\
n <mt-popup v-model="refVisible" style="background-color: transparent;margin-top: -80vw;margin-left: -40vw;transform: none">
\
n <div :style="{backgroundImage:`url(${refBg})`}" class="ref-content"
\
n v-if="groupDetail.share_desc.refImg && groupDetail.share_desc.refImg.length > 0">
\
n <div class="tips">
\
n 长按保存图片
\
n </div>
\
n </div>
\
n <div class="img-cvs" id="capture" ref="imageWrapper" v-if="groupDetail.share_desc.refImg && groupDetail.share_desc.refImg.length > 0">
\
n <img :src="groupDetail.share_desc.refImg[0].url">
\
n <div id="qrcode" class="qrcode">
\
n </div>
\
n </div>
\
n <img :src="dataURL" class="cvs-img"/>
\
n </mt-popup>
\
n <div v-if="groupDetail.status === 1 && invite_code_f">
\
n <footer v-if="groupDetail.goods_type && groupDetail.goods_type === 2">
\
n <div class="btn" @click="showTeacher()">
\
n <img :src="weChatIcon"/>
\
n </div>
\
n <div class="btn big" @click="groupPay(0)" :id="groupId ?
\'
reGroup
\'
:
\'
singleBuy
\'
">
\
n <span v-if="!groupId">¥{{groupDetail.original_price/100}}</span>
\
n <div v-if="!groupId">单独购</div>
\
n <span v-if="groupId">¥{{groupDetail.current_price/100}}</span>
\
n <div v-if="groupId">重新开团</div>
\
n </div>
\
n <div class="btn big price" @click="groupPay(1)" :id="groupId ?
\'
joinGroup
\'
:
\'
newGroup
\'
">
\
n <span>¥{{groupDetail.current_price/100}}</span>
\
n <div v-if="!groupId">{{groupDetail.desc.group_number}}人团</div>
\
n <div v-if="groupId">立即参团</div>
\
n </div>
\
n </footer>
\
n <footer v-if="groupDetail.goods_type && groupDetail.goods_type !== 2">
\
n <div class="btn" @click="showTeacher()">
\
n <img :src="weChatIcon"/>
\
n </div>
\
n <div class="btn big price" @click="groupPay(1)">
\
n <span>¥{{groupDetail.current_price/100}}</span>
\
n <div>立即购买</div>
\
n </div>
\
n </footer>
\
n </div>
\
n <div v-if="groupDetail.status !== 1">
\
n <footer>
\
n <div style="color: #888">
\
n 已售罄
\
n </div>
\
n </footer>
\
n </div>
\
n </div>
\
n</template>
\
n
\
n<script>
\
n import
\'
swiper/dist/css/swiper.css
\'
\
n import { swiper, swiperSlide } from
\'
vue-awesome-swiper
\'
\
n import QRCode from
\'
qrcodejs2
\'
\
n import { Indicator } from
\'
mint-ui
\'
;
\
n import {getwechatParam,getGoodsDetailApi,getGroupDetailApi,getStatusWechatApi,getUserDetailApi} from "../../service/api";
\
n import refBg from
\'
../../assets/refBg.png
\'
\
n import moreUrl from
\'
../../assets/moreIcon.png
\'
\
n import refIcon from
\'
../../assets/refIcon.png
\'
\
n import weChatIcon from
\'
../../assets/wechatIcon.png
\'
\
n import weChatQrUrl from
\'
../../assets/weChatCode.png
\'
\
n import closeUrl from
\'
../../assets/closemy.png
\'
\
n import html2canvas from
\'
html2canvas
\'
\
n export default {
\
n name: "index",
\
n components: {
\
n swiper,
\
n swiperSlide,
\
n },
\
n data(){
\
n return {
\
n refBg:refBg,
\
n join:false,
\
n popType:false,
\
n popFill:false,
\
n popupVisible:false,
\
n refVisible:false,
\
n tabType:true,
\
n popcontentW:`您已经购买过课程,无需重复<br>购买,您可以添加微信公众号了解更多`,
\
n popcontentT:`为了更好地为您进行课程服务,<br>请扫码添加老师二维码`,
\
n qrCode:weChatQrUrl,
\
n weChatIcon:weChatIcon,
\
n closeUrl:closeUrl,
\
n moreUrl:moreUrl,
\
n refIcon:
\'
https://cdn.singsingenglish.com/new-sing/b7f43ced8f8268655c2c5b289360df990ec8f18e.png
\'
,
\
n swiperOption: {
\
n pagination: {
\
n el:
\'
.swiper-pagination
\'
\
n }
\
n },
\
n QRCodeB:false,
\
n dataURL:null,
\
n user_id:null,
\
n invite_code_f:true,
\
n invite_code:
\'\'
,
\
n shopId:
\'\'
,
\
n groupId:null,
\
n groupDetail:false,
\
n groupData:null,
\
n }
\
n },
\
n mounted(){
\
n this.getDetail();
\
n },
\
n methods:{
\
n goToActivity(){
\
n let query = {}
\
n if(window.location.href.indexOf(
\'
shopId
\'
)>-1){
\
n query.shopId = this.$route.query.shopId;
\
n }
\
n if(window.location.href.indexOf(
\'
groupId
\'
)>-1){
\
n query.groupId = this.$route.query.groupId;
\
n }
\
n if(window.location.href.indexOf(
\'
invite_code
\'
)> -1) {
\
n query.invite_code = this.$route.query.invite_code;
\
n }
\
n this.$router.push({name:
\'
activity
\'
,query:query})
\
n },
\
n refshow(){
\
n Indicator.open();
\
n if(document.body.scrollTop < 10){
\
n document.body.scrollTop = 20;
\
n document.documentElement.scrollTop = 20;
\
n }
\
n if(localStorage.getItem(
\'
cc_token
\'
) && localStorage.getItem(
\'
cc_token
\'
) !==
\'\'
){
\
n setTimeout(()=>{
\
n Indicator.close();
\
n if(!this.invite_code){
\
n this.invite_code =
\'
CC-USER
\'
\
n }
\
n getUserDetailApi().then(res=>{
\
n this.user_id=res.user_id;
\
n let invite_code = this.invite_code.split(
\'
-
\'
);
\
n if(invite_code.length > 2 && invite_code[1] ===
\'
TEACHER
\'
){
\
n invite_code[1] =
\'
USER
\'
\
n }
\
n let code = `${invite_code[0]}-${invite_code[1]}`;
\
n let URL = `${process.env.BUY_URL}shopId=${this.shopId}&invite_code=${code}-${this.user_id}`;
\
n if(this.groupId && this.groupId !==
\'
null
\'
){
\
n URL += `&groupId=${this.groupId}`
\
n }
\
n console.log(URL);
\
n this.qrcode(URL);
\
n this.refVisible = true;
\
n this.$nextTick(()=>{
\
n if(!this.dataURL){
\
n setTimeout(()=>{
\
n let {
\
n height,
\
n width
\
n } = document.getElementById(
\'
capture
\'
).getClientRects()[0]
\
n document.getElementById(
\'
capture
\'
).style.width = width +
\'
px
\'
;
\
n let o = this.getOffsetRect(this.$refs.imageWrapper);
\
n let {
\
n height1,
\
n width1
\
n } = document.getElementById(
\'
capture
\'
).getClientRects()[0];
\
n html2canvas(document.getElementById(
\'
capture
\'
),{
\
n async: true,
\
n timeout: 500,
\
n scrollX:1,
\
n scale: 3,
\
n width: width1,
\
n height: height1,
\
n letterRendering: true,
\
n }).then((canvas) => {
\
n let dataURL = canvas.toDataURL("image/jpg");
\
n this.dataURL = dataURL;
\
n }).catch(res=>{alert(res);console.log()});
\
n },500)
\
n }else{
\
n
\
n }
\
n })
\
n });
\
n },500)
\
n
\
n }else{
\
n let query = {retUrl:this.$route.fullPath,is_new_user_url:
\'
1
\'
};
\
n this.$router.push({name:
\'
author
\'
,query:query})
\
n }
\
n },
\
n getOffsetRect(ele){
\
n var box=ele.getBoundingClientRect();
\
n var body=document.body,
\
n docElem=document.documentElement;
\
n //获取页面的scrollTop,scrollLeft(兼容性写法)
\
n var scrollTop=window.pageYOffset||docElem.scrollTop||body.scrollTop,
\
n scrollLeft=window.pageXOffset||docElem.scrollLeft||body.scrollLeft;
\
n var clientTop=docElem.clientTop||body.clientTop,
\
n clientLeft=docElem.clientLeft||body.clientLeft;
\
n var top=box.top+scrollTop-clientTop,
\
n left=box.left+scrollLeft-clientLeft;
\
n return {
\
n //Math.round 兼容火狐浏览器bug
\
n top:Math.round(top),
\
n left:Math.round(left)
\
n }
\
n },
\
n qrcode(data){
\
n if(this.QRCodeB){
\
n this.QRCodeB.makeCode(data)
\
n }else{
\
n this.QRCodeB = new QRCode(
\'
qrcode
\'
, {
\
n width: 80,
\
n height: 80, // 高度
\
n text: data, // 二维码内容
\
n image:
\'\'
\
n });
\
n }
\
n
\
n },
\
n // 分享
\
n enableShare: function(option) {
\
n let that = this;
\
n getwechatParam({
\
n api_list:
\'
onMenuShareAppMessage,onMenuShareTimeline
\'
,
\
n url:window.location.href.split(
\'
#
\'
)[0]
\
n }).then(wechatRes => {
\
n wx.config({
\
n debug: false,
\
n appId: wechatRes.appId,
\
n timestamp: parseInt(wechatRes.timestamp),
\
n nonceStr: wechatRes.nonceStr,
\
n signature: wechatRes.signature,
\
n jsApiList: wechatRes.jsApiList
\
n });
\
n wx.ready(function() {
\
n wx.onMenuShareTimeline({
\
n title: option.product_title, // 分享标题
\
n desc: option.desc,// 分享描述
\
n link: option.shareUrl, // 分享链接
\
n imgUrl: option.shareIcon ||
\'
https://cdn.singsingenglish.com/singsing/recommend/logo-refer.png
\'
, // 分享图标
\
n success: function() {
\
n console.log(
\'
分享成功
\'
);
\
n window._hmt.push([
\'
_trackEvent
\'
,
\'
分享
\'
, "商品页好友分享",`id${that.shopId}`,that.invite_code]);//百度统计
\
n },
\
n cancel: function() {
\
n // alert("失败")
\
n console.log(
\'
分享失败
\'
)
\
n }
\
n });
\
n wx.onMenuShareAppMessage({
\
n title: option.product_title, // 分享标题
\
n desc: option.desc,// 分享描述
\
n link: option.shareUrl, // 分享链接
\
n imgUrl: option.shareIcon ||
\'
https://cdn.singsingenglish.com/singsing/recommend/logo-refer.png
\'
, // 分享图标
\
n success: function() {
\
n window._hmt.push([
\'
_trackEvent
\'
,
\'
分享
\'
, "商品页朋友圈分享",`id${that.shopId}`,that.invite_code]);//百度统计
\
n },
\
n cancel: function() {
\
n }
\
n });
\
n })
\
n })
\
n },
\
n onShare: function(type) {
\
n let URL = `${process.env.BUY_URL}?shopId=${this.shopId}&groupId=${this.groupId}&invite_code=${this.invite_code}`;
\
n if(type === 1 ){
\
n URL = `${process.env.BUY_URL}?shopId=${this.shopId}&invite_code=${this.invite_code}`
\
n }
\
n this.enableShare({
\
n product_title: this.groupDetail.share_desc.title,
\
n desc: this.groupDetail.share_desc.content,
\
n shareIcon:this.groupDetail.share_desc.img[0].url,
\
n shareUrl:URL
\
n })
\
n },
\
n toDataURLBase64 (src, callback) {
\
n let xhttp = new XMLHttpRequest();
\
n xhttp.onload = function () {
\
n let fileReader = new FileReader();
\
n fileReader.onloadend = function () {
\
n callback(fileReader.result)
\
n };
\
n fileReader.readAsDataURL(xhttp.response)
\
n };
\
n xhttp.responseType =
\'
blob
\'
;
\
n xhttp.open(
\'
GET
\'
, src, true);
\
n xhttp.send()
\
n },
\
n // 初始化
\
n getDetail(){
\
n if(window.location.href.indexOf(
\'
invite_code
\'
)> -1){
\
n this.invite_code = this.$route.query.invite_code;
\
n let l = this.invite_code.split(
\'
-
\'
).length
\
n if(l < 3){
\
n this.invite_code_f = false
\
n }
\
n }
\
n if(window.location.href.indexOf(
\'
shopId
\'
)>-1){
\
n this.shopId = this.$route.query.shopId;
\
n getGoodsDetailApi(this.shopId).then(res=>{
\
n res.desc = JSON.parse(res.desc);
\
n res.goods_desc = JSON.parse(res.goods_desc);
\
n res.share_desc = JSON.parse(res.share_desc);
\
n //商品下架跳转绑定商品
\
n if(res.status === 2 && res.bind_goods_id){
\
n this.$router.push({name:
\'
buyDetail
\'
,query:{shopId:res.bind_goods_id}});
\
n this.getDetail();
\
n return
\
n }
\
n this.groupDetail = res;
\
n for (let i = 0;i<this.groupDetail.header_url.length;i++){
\
n this.groupDetail.header_url[i]=this.groupDetail.header_url[i].replace(
\'
http://
\'
,
\'
https://
\'
)
\
n }
\
n this.groupDetail.desc.detail = this.groupDetail.desc.detail.replace(/http:
\\
/
\\
//g,
\'
https://
\'
);
\
n this.groupDetail.desc.qa = this.groupDetail.desc.qa.replace(/http:
\\
/
\\
//g,
\'
https://
\'
);
\
n if(this.groupDetail.share_desc.refImg && this.groupDetail.share_desc.refImg.length === 1){
\
n this.groupDetail.share_desc.refImg[0].url = this.groupDetail.share_desc.refImg[0].url.replace(
\'
http://
\'
,
\'
https://
\'
);
\
n let _this = this;
\
n this.toDataURLBase64(this.groupDetail.share_desc.refImg[0].url, function (avatarUrl) {
\
n _this.groupDetail.share_desc.refImg[0].url = avatarUrl;
\
n });
\
n }
\
n
\
n if(this.groupDetail.goods_type === 2){
\
n if(localStorage.getItem(
\'
cc_token
\'
)){
\
n getStatusWechatApi({goods_id:this.shopId}).then(res=>{
\
n if(res.out_trade_no){
\
n this.$router.push({name:
\'
success
\'
,query:{out_trade_no:res.out_trade_no}});
\
n }
\
n });
\
n }
\
n if(window.location.href.indexOf(
\'
groupId
\'
)>-1){
\
n this.groupId = this.$route.query.groupId;
\
n getGroupDetailApi(this.groupId).then(res=>{
\
n this.groupData = res
\
n });
\
n this.onShare(0)
\
n }else{
\
n this.onShare(1)
\
n }
\
n }
\
n })
\
n }
\
n
\
n },
\
n showTeacher(){
\
n this.popType = false;
\
n this.popupVisible = true
\
n },
\
n groupPay(type){
\
n let query = {shopId: this.shopId,invite_code:this.invite_code};
\
n if(this.groupId){
\
n query.group_order_id = this.groupId
\
n }
\
n if(type === 0 && !this.groupId){
\
n query.type=
\'
single
\'
;
\
n window._hmt.push([
\'
_trackEvent
\'
,
\'
购买
\'
, "商品页团购单独购买",`id${this.shopId}`,this.invite_code]);//百度统计
\
n }else if (type === 0 && this.groupId){
\
n window.location.href = `/#/buyDetail?shopId=${this.shopId}`;
\
n window._hmt.push([
\'
_trackEvent
\'
,
\'
购买
\'
, "商品页团购重新开团",`id${this.shopId}`,this.invite_code]);//百度统计
\
n } else{
\
n window._hmt.push([
\'
_trackEvent
\'
,
\'
购买
\'
, "商品页购买",`id${this.shopId}`,this.invite_code]);//百度统计
\
n query.type=
\'\'
\
n }
\
n this.$router.push({
\
n name:
\'
buy
\'
,
\
n query:query
\
n })
\
n }
\
n }
\
n }
\
n<
\
/script>
\
n<style>
\
n img,video{
\
n max-width: 100%;
\
n }
\
n</style>
\
n<style scoped lang="less">
\
n @import "../../util/public";
\
n .img-cvs{
\
n position: absolute;
\
n width: 233 * @toVw;
\
n top: 176 * @toVw;
\
n left: 29 * @toVw;
\
n .qrcode{
\
n position: absolute;
\
n top: 305 * @toVw;
\
n left: 15 * @toVw;
\
n width: 60 * @toVw;
\
n }
\
n }
\
n .cvs-img{
\
n position: absolute;
\
n width: 233 * @toVw;
\
n top: 176 * @toVw;
\
n left: 29 * @toVw;
\
n z-index: 10;
\
n }
\
n .ref-content{
\
n width: 299 * @toVw;
\
n height: 564 * @toVw;
\
n background-size: 100% 100%;
\
n position: relative;
\
n .tips{
\
n font-size: 12px;
\
n position: absolute;
\
n color: #666;
\
n right: 10 * @toVw;
\
n top: 250 * @toVw;
\
n width: 1em;
\
n }
\
n }
\
n .group-index{
\
n height: 100%;
\
n padding-bottom: toVw(150);
\
n background: #f0f0f0;
\
n font-family: PingFangSC-Regular;
\
n .ref-icon{
\
n position: fixed;
\
n height: 100/375 * 90vw ;
\
n top: 70vw;
\
n z-index: 6;
\
n right: 10 * 100 /375vw;
\
n border-radius: 100px;
\
n }
\
n .banner{
\
n background: white;
\
n img{
\
n width: 100%;
\
n }
\
n }
\
n .head{
\
n background: white;
\
n margin-bottom: 10px;
\
n padding: 20/7.5vw;
\
n .title{
\
n font-size: 20px;
\
n color: #333333;
\
n margin-bottom: 15/7.5vw;
\
n }
\
n .detail{
\
n font-size: 12px;
\
n line-height: 1.6em;
\
n color: #333333;
\
n display: block;
\
n margin-bottom: 15/7.5vw;
\
n }
\
n .price{
\
n .price-content{
\
n font-family: PingFang-SC-Bold;
\
n font-size: 20px;
\
n color: #F83534;
\
n }
\
n }
\
n }
\
n .head-icon{
\
n padding: 20/7.5vw;
\
n background: white;
\
n margin-bottom: 2px;
\
n .icon{
\
n display: inline-block;
\
n width: 60/7.5vw;
\
n margin: 0 10/7.5vw;
\
n border-radius: 1000px;
\
n vertical-align: middle;
\
n }
\
n .more{
\
n width: 50/7.5vw;
\
n vertical-align: middle;
\
n }
\
n .has{
\
n font-size: 12px;
\
n line-height: 60/7.5vw;
\
n color: #999999;
\
n float: right;
\
n }
\
n }
\
n .welfare{
\
n background: white;
\
n padding:10/7.5vw ;
\
n font-size: 12px;
\
n text-align: center;
\
n color: #999999;
\
n margin-bottom: 20px;
\
n }
\
n .main-detail{
\
n padding: 20/7.5vw;
\
n background: white;
\
n .tab-content{
\
n border-radius: 9px ;
\
n border: 1px solid #F63539;
\
n &:after{
\
n content:
\'\'
;
\
n display: block;
\
n clear: both;
\
n }
\
n .tab-btn{
\
n width: 50%;
\
n float: left;
\
n height: 80/7.5vw;
\
n line-height: 80/7.5vw;
\
n text-align: center;
\
n color: #F63539;
\
n border-radius:9px ;
\
n &.active{
\
n background: #F63539;
\
n color: white;
\
n }
\
n }
\
n }
\
n .qa-block{
\
n padding: 20/7.5vw 0 toVw(150) 0;
\
n img,video{
\
n max-width: 100%;
\
n }
\
n .qa-content{
\
n margin: toVw(10) 0;
\
n .qa-q{
\
n font-size: 16px;
\
n color: #666666;
\
n }
\
n .qa-a{
\
n font-size: 16px;
\
n color: #333333;
\
n }
\
n }
\
n }
\
n .detail{
\
n padding: 20/7.5vw 0 150/7.5vw 0;
\
n .detail-content{
\
n img,video{
\
n max-width: 100%;
\
n }
\
n }
\
n
\
n }
\
n }
\
n footer{
\
n position: absolute;
\
n position: fixed;
\
n bottom: 0;
\
n width: 100%;
\
n height: 120/7.5vw;
\
n display: -webkit-box; // OLD - iOS 6-, Safari 3.1-6 //
\
n display: -moz-box; // OLD - Firefox 19- (buggy but mostly works) //
\
n display: -ms-flexbox; // TWEENER - IE 10 //
\
n display: -webkit-flex; // NEW - Chrome //
\
n display: flex; // NEW, Spec - Opera 12.1, Firefox 20+ //
\
n background: white;
\
n padding: 10/7.5vw;
\
n border-top: 1px solid #d8d8d8;
\
n justify-content:space-around;
\
n .btn{
\
n border: 1px solid #cccccc;
\
n border-radius: 8px;
\
n width:0;
\
n flex-grow:2;
\
n text-align: center;
\
n padding: 15/7.5vw 0;
\
n margin: 0 10/7.5vw;
\
n line-height: 1.4em;
\
n font-size: 16px;
\
n color: #666666;
\
n span{
\
n display: block;
\
n font-size: 20px;
\
n font-family: PingFang-SC-Bold;
\
n }
\
n img{
\
n width: 50/7.5vw;
\
n }
\
n &.big{
\
n padding: 5/7.5vw 0;
\
n flex-grow:5;
\
n &.price{
\
n background: #F83534;
\
n border-color: #F83534;
\
n color: white;
\
n }
\
n }
\
n }
\
n }
\
n .pop-block{
\
n padding:40/7.5vw 10/7.5vw;
\
n width: 600/7.5vw;
\
n text-align: center;
\
n font-size: 14px;
\
n color: #666666;
\
n position: relative;
\
n img{
\
n width: 250/7.5vw;
\
n }
\
n .close{
\
n width: 50/7.5vw;
\
n position: absolute;
\
n top: 20/7.5vw;
\
n right: 20/7.5vw;
\
n }
\
n }
\
n .mint-popup{
\
n border-radius: 10px;
\
n }
\
n .pop-fill{
\
n width: 500/7.5vw;
\
n padding:30/7.5vw 30/7.5vw;
\
n font-size: 16px;
\
n color: #333333;
\
n .btn-block{
\
n margin-top: 30/7.5vw;
\
n &:after{
\
n content:
\'\'
;
\
n display: block;
\
n clear: both;
\
n }
\
n .btn{
\
n float: right;
\
n background: #F83534;
\
n font-size: 14px;
\
n padding: 5/7.5vw 10/7.5vw;
\
n border-radius: 8px;
\
n color: #FFFFFF;
\
n }
\
n }
\
n }
\
n
\
n }
\
n
\
n</style>
\
n'
],
sourceRoot
:
""
}])}});
//# sourceMappingURL=8.1481b58146119fa87f84.js.map
\ No newline at end of file
dev/static/js/8.1481b58146119fa87f84.js.map
0 → 100644
View file @
bad54717
This source diff could not be displayed because it is too large. You can
view the blob
instead.
dev/static/js/manifest.73a6aae8bcc58f1e95ef.js
0 → 100644
View file @
bad54717
!
function
(
e
){
var
n
=
window
.
webpackJsonp
;
window
.
webpackJsonp
=
function
(
r
,
o
,
a
){
for
(
var
f
,
d
,
i
,
u
=
0
,
b
=
[];
u
<
r
.
length
;
u
++
)
d
=
r
[
u
],
t
[
d
]
&&
b
.
push
(
t
[
d
][
0
]),
t
[
d
]
=
0
;
for
(
f
in
o
)
Object
.
prototype
.
hasOwnProperty
.
call
(
o
,
f
)
&&
(
e
[
f
]
=
o
[
f
]);
for
(
n
&&
n
(
r
,
o
,
a
);
b
.
length
;)
b
.
shift
()();
if
(
a
)
for
(
u
=
0
;
u
<
a
.
length
;
u
++
)
i
=
c
(
c
.
s
=
a
[
u
]);
return
i
};
var
r
=
{},
t
=
{
20
:
0
};
function
c
(
n
){
if
(
r
[
n
])
return
r
[
n
].
exports
;
var
t
=
r
[
n
]
=
{
i
:
n
,
l
:
!
1
,
exports
:{}};
return
e
[
n
].
call
(
t
.
exports
,
t
,
t
.
exports
,
c
),
t
.
l
=!
0
,
t
.
exports
}
c
.
e
=
function
(
e
){
var
n
=
t
[
e
];
if
(
0
===
n
)
return
new
Promise
(
function
(
e
){
e
()});
if
(
n
)
return
n
[
2
];
var
r
=
new
Promise
(
function
(
r
,
c
){
n
=
t
[
e
]
=
[
r
,
c
]});
n
[
2
]
=
r
;
var
o
=
document
.
getElementsByTagName
(
"head"
)[
0
],
a
=
document
.
createElement
(
"script"
);
a
.
type
=
"text/javascript"
,
a
.
charset
=
"utf-8"
,
a
.
async
=!
0
,
a
.
timeout
=
12
e4
,
c
.
nc
&&
a
.
setAttribute
(
"nonce"
,
c
.
nc
),
a
.
src
=
c
.
p
+
"static/js/"
+
e
+
"."
+
{
0
:
"f4ced62b7bd745f8fd2d"
,
1
:
"c566fdcd14b51c49e2f9"
,
2
:
"394c592d857e11d41c4f"
,
3
:
"7c946cef470ef5409093"
,
4
:
"bcd2ad62c4105277b7f2"
,
5
:
"dee0efe9afe552f31663"
,
6
:
"b21a6491ec9ad6c76870"
,
7
:
"3dc91eb112affee47138"
,
8
:
"1481b58146119fa87f84"
,
9
:
"48c1afdc23f9a0634f88"
,
10
:
"3c294925c6f40e2fcb69"
,
11
:
"fdf43a6097443c341a67"
,
12
:
"d2acb8f718bf45b7349b"
,
13
:
"e315559e4a72d1b65698"
,
14
:
"b74dca9ee1add1622650"
,
15
:
"99f55e54d2b8d08321a4"
,
16
:
"ade9181c30a0845ed65a"
,
17
:
"c0db474323b6a7609fba"
}[
e
]
+
".js"
;
var
f
=
setTimeout
(
d
,
12
e4
);
function
d
(){
a
.
onerror
=
a
.
onload
=
null
,
clearTimeout
(
f
);
var
n
=
t
[
e
];
0
!==
n
&&
(
n
&&
n
[
1
](
new
Error
(
"Loading chunk "
+
e
+
" failed."
)),
t
[
e
]
=
void
0
)}
return
a
.
onerror
=
a
.
onload
=
d
,
o
.
appendChild
(
a
),
r
},
c
.
m
=
e
,
c
.
c
=
r
,
c
.
d
=
function
(
e
,
n
,
r
){
c
.
o
(
e
,
n
)
||
Object
.
defineProperty
(
e
,
n
,{
configurable
:
!
1
,
enumerable
:
!
0
,
get
:
r
})},
c
.
n
=
function
(
e
){
var
n
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
c
.
d
(
n
,
"a"
,
n
),
n
},
c
.
o
=
function
(
e
,
n
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
n
)},
c
.
p
=
""
,
c
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
}}([]);
//# sourceMappingURL=manifest.73a6aae8bcc58f1e95ef.js.map
\ No newline at end of file
dev/static/js/manifest.73a6aae8bcc58f1e95ef.js.map
0 → 100644
View file @
bad54717
{"version":3,"sources":["webpack:///webpack/bootstrap c9ae6ae022ed5868cb7f"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","20","exports","module","l","e","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","script","createElement","type","charset","async","timeout","nc","setAttribute","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","setTimeout","onScriptComplete","onerror","onload","clearTimeout","chunk","Error","undefined","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"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","file":"static/js/manifest.73a6aae8bcc58f1e95ef.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t20: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = \"text/javascript\";\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"f4ced62b7bd745f8fd2d\",\"1\":\"c566fdcd14b51c49e2f9\",\"2\":\"394c592d857e11d41c4f\",\"3\":\"7c946cef470ef5409093\",\"4\":\"bcd2ad62c4105277b7f2\",\"5\":\"dee0efe9afe552f31663\",\"6\":\"b21a6491ec9ad6c76870\",\"7\":\"3dc91eb112affee47138\",\"8\":\"1481b58146119fa87f84\",\"9\":\"48c1afdc23f9a0634f88\",\"10\":\"3c294925c6f40e2fcb69\",\"11\":\"fdf43a6097443c341a67\",\"12\":\"d2acb8f718bf45b7349b\",\"13\":\"e315559e4a72d1b65698\",\"14\":\"b74dca9ee1add1622650\",\"15\":\"99f55e54d2b8d08321a4\",\"16\":\"ade9181c30a0845ed65a\",\"17\":\"c0db474323b6a7609fba\"}[chunkId] + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c9ae6ae022ed5868cb7f"],"sourceRoot":""}
\ No newline at end of file
src/components/buy/index.vue
View file @
bad54717
...
@@ -143,7 +143,7 @@
...
@@ -143,7 +143,7 @@
weChatIcon
:
weChatIcon
,
weChatIcon
:
weChatIcon
,
closeUrl
:
closeUrl
,
closeUrl
:
closeUrl
,
moreUrl
:
moreUrl
,
moreUrl
:
moreUrl
,
refIcon
:
refIcon
,
refIcon
:
'https://cdn.singsingenglish.com/new-sing/b7f43ced8f8268655c2c5b289360df990ec8f18e.png'
,
swiperOption
:
{
swiperOption
:
{
pagination
:
{
pagination
:
{
el
:
'.swiper-pagination'
el
:
'.swiper-pagination'
...
...
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