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
613d40ed
Commit
613d40ed
authored
Oct 14, 2019
by
IvyXia123
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
20191014-15号发版
parent
845c12a6
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
307 additions
and
131 deletions
+307
-131
index.html
dist/index.html
+1
-1
gaozhi.png
src/assets/punchTheClock/gaozhi.png
+0
-0
xuexidaka.png
src/assets/punchTheClock/xuexidaka.png
+0
-0
zhifubaotup.png
src/assets/punchTheClock/zhifubaotup.png
+0
-0
zhiying.png
src/assets/punchTheClock/zhiying.png
+0
-0
buy.vue
src/components/buy/buy.vue
+32
-30
guidelines.vue
src/components/buy/guidelines.vue
+112
-0
index.vue
src/components/punchTheClock/index.vue
+123
-100
index.js
src/router/index.js
+6
-0
api.js
src/service/api.js
+6
-0
common.js
src/util/common.js
+27
-0
No files found.
dist/index.html
View file @
613d40ed
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"
><meta
name=
screen-orientation
content=
portrait
><meta
name=
x5-orientation
content=
portrait
><title>
唱唱启蒙英语
</title><link
rel=
stylesheet
href=
https://at.alicdn.com/t/font_822651_g9r2j7kybxu.css
><style>
*
{
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"
><meta
name=
screen-orientation
content=
portrait
><meta
name=
x5-orientation
content=
portrait
><title>
唱唱启蒙英语
</title><link
rel=
stylesheet
href=
https://at.alicdn.com/t/font_822651_g9r2j7kybxu.css
><style>
*
{
-webkit-overflow-scrolling
:
touch
;
-webkit-overflow-scrolling
:
touch
;
}
</style><link
href=
https://static-cdn.changchangenglish.com/new-sing/static/css/app.5f3583bfe1a035c4f23bb6139d6a7afe.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></script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/manifest.acca5632900f87535f87.js
></script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/vendor.e524f5cccf757e45c672.js
></script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/app.d2f6f2a89dceff91d7d3.js
></script></body></html>
}
</style><link
href=
https://static-cdn.changchangenglish.com/new-sing/static/css/app.81ff810b654ae302b7808d851f979733.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></script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/manifest.5d37e9aa5a2bcabafb16.js
></script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/vendor.7b1120612b542658f62d.js
></script><script
type=
text/javascript
src=
https://static-cdn.changchangenglish.com/new-sing/static/js/app.d23a4ea1fe38b2429fbb.js
></script></body></html>
\ No newline at end of file
\ No newline at end of file
src/assets/punchTheClock/gaozhi.png
0 → 100755
View file @
613d40ed
9.71 KB
src/assets/punchTheClock/xuexidaka.png
100644 → 100755
View file @
613d40ed
File mode changed from 100644 to 100755
src/assets/punchTheClock/zhifubaotup.png
0 → 100755
View file @
613d40ed
23.5 KB
src/assets/punchTheClock/zhiying.png
0 → 100755
View file @
613d40ed
43.9 KB
src/components/buy/buy.vue
View file @
613d40ed
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
</div>
</div>
<!-- 支付方式选择 -->
<!-- 支付方式选择 -->
<
!--
<
div
class=
"pay-list"
>
<div
class=
"pay-list"
>
<div
class=
"pay-choice"
>
支付方式选择
</div>
<div
class=
"pay-choice"
>
支付方式选择
</div>
<ul
class=
"pay"
>
<ul
class=
"pay"
>
<li
v-for=
"item in payList"
:key=
"item.value"
@
click=
"payListClick(item.value)"
>
<li
v-for=
"item in payList"
:key=
"item.value"
@
click=
"payListClick(item.value)"
>
...
@@ -82,7 +82,7 @@
...
@@ -82,7 +82,7 @@
</div>
</div>
</li>
</li>
</ul>
</ul>
</div>
-->
</div>
<footer>
<footer>
<div
class=
"sub-block"
>
<div
class=
"sub-block"
>
...
@@ -210,9 +210,7 @@ export default {
...
@@ -210,9 +210,7 @@ export default {
userCourse
:
{},
userCourse
:
{},
payList
:
[
payList
:
[
{
icon
:
weixin
,
title
:
'微信支付'
,
value
:
0
},
{
icon
:
weixin
,
title
:
'微信支付'
,
value
:
0
},
{
icon
:
zhifubao
,
title
:
'支付宝支付'
,
value
:
1
},
{
icon
:
zhifubao
,
title
:
'支付宝支付'
,
value
:
1
}
{
icon
:
xinyongka
,
title
:
'信用卡分期'
,
value
:
2
},
{
icon
:
fenqi
,
title
:
'其他分期'
,
value
:
3
},
],
],
payIndex
:
0
,
payIndex
:
0
,
payUrl
:
''
payUrl
:
''
...
@@ -380,27 +378,17 @@ export default {
...
@@ -380,27 +378,17 @@ export default {
}
}
this
.
orderFlag
=
false
;
this
.
orderFlag
=
false
;
/*let payTypeArr = ['WX', 'ALI', 'KFQ']
if
(
this
.
payIndex
===
0
)
{
let data = { pay_type: payTypeArr[this.payIndex], return_url: window.location.href, goods_id: json.goods_id, buy_type: this.groupDetail.goods_type, group_order_id: json.group_order_id, order_coupon_id:json.order_coupon_id }
// 微信支付
postPayBillApi(data).then(res => {
payApi
(
json
).
then
(
res
=>
{
if(this.payIndex === 0) {
window.location.href = res.pay_url;
}else if(this.payIndex === 1){
this.payUrl = res.pay_url;
}else if(this.payIndex === 2) {
this.payUrl = res.pay_url;
}
})*/
payApi
(
json
).
then
(
res
=>
{
this
.
orderNo
=
res
.
out_trade_no
;
this
.
orderNo
=
res
.
out_trade_no
;
console
.
log
(
res
)
console
.
log
(
res
)
if
(
res
.
out_trade_no
&&
!
res
.
appId
)
{
if
(
res
.
out_trade_no
&&
!
res
.
appId
)
{
getCourseInfoApi
().
then
(
res
=>
{
getCourseInfoApi
().
then
(
res
=>
{
this
.
userCourse
=
res
;
this
.
userCourse
=
res
;
localStorage
.
setItem
(
localStorage
.
setItem
(
"userCourse"
,
"userCourse"
,
JSON
.
stringify
(
this
.
userCourse
)
JSON
.
stringify
(
this
.
userCourse
)
);
);
this
.
navPage
(
res
);
this
.
navPage
(
res
);
});
});
...
@@ -417,15 +405,15 @@ export default {
...
@@ -417,15 +405,15 @@ export default {
}
else
if
(
typeof
WeixinJSBridge
===
"undefined"
)
{
}
else
if
(
typeof
WeixinJSBridge
===
"undefined"
)
{
if
(
document
.
addEventListener
)
{
if
(
document
.
addEventListener
)
{
document
.
addEventListener
(
document
.
addEventListener
(
"WeixinJSBridgeReady"
,
"WeixinJSBridgeReady"
,
that
.
jsApiCall
,
that
.
jsApiCall
,
false
false
);
);
}
else
if
(
document
.
attachEvent
)
{
}
else
if
(
document
.
attachEvent
)
{
document
.
attachEvent
(
"WeixinJSBridgeReady"
,
that
.
jsApiCall
);
document
.
attachEvent
(
"WeixinJSBridgeReady"
,
that
.
jsApiCall
);
document
.
attachEvent
(
document
.
attachEvent
(
"onWeixinJSBridgeReady"
,
"onWeixinJSBridgeReady"
,
that
.
jsApiCall
that
.
jsApiCall
);
);
}
}
}
else
{
}
else
{
...
@@ -434,11 +422,25 @@ export default {
...
@@ -434,11 +422,25 @@ export default {
});
});
}
}
})
})
.
catch
(
res
=>
{
.
catch
(
err
=>
{
// alert(res)
// alert(res)
Toast
(
res
.
msg
);
Toast
(
err
.
msg
)
this
.
orderFlag
=
true
;
this
.
orderFlag
=
true
;
});
});
}
else
{
// 支付宝支付
let
data
=
{
pay_type
:
'ALI'
,
return_url
:
window
.
location
.
href
,
buy_type
:
this
.
groupDetail
.
goods_type
}
let
dataObj
=
Object
.
assign
({},
data
,
json
)
postPayBillApi
(
dataObj
).
then
(
res
=>
{
let
outTradEno
=
JSON
.
stringify
({
out_trade_no
:
res
.
out_trade_no
,
invite_code
:
this
.
$route
.
query
.
invite_code
,
shopId
:
this
.
$route
.
query
.
shopId
,
goods_type
:
this
.
groupDetail
.
goods_type
,
is_subscribe
:
this
.
userDetail
.
open_info
.
is_subscribe
})
localStorage
.
setItem
(
'out_trade_no'
,
outTradEno
);
localStorage
.
setItem
(
'pay_url'
,
res
.
pay_url
);
location
.
href
=
`http://
${
window
.
location
.
host
}
/#/guidelines?pay_url=
${
encodeURI
(
res
.
pay_url
)
}
`
}).
catch
(
err
=>
{
console
.
log
(
err
)
Toast
(
err
.
msg
)
})
}
}
}
},
},
closeAdd
(
data
)
{
closeAdd
(
data
)
{
...
...
src/components/buy/guidelines.vue
0 → 100644
View file @
613d40ed
<
template
>
<div
class=
"guidelines"
>
<div
class=
"zhiying"
v-if=
"micromessenger == 0"
>
<img
:src=
"zhiying"
alt=
""
>
</div>
</div>
</
template
>
<
script
>
import
{
getBillRefreshApi
,
getStatusWechatApi
,
getCourseInfoApi
}
from
"../../service/api"
import
{
Popup
,
Lazyload
,
Button
,
Dialog
,
Toast
}
from
'vant'
;
import
common
from
'../../util/common'
import
zhiying
from
"../../assets/punchTheClock/zhiying.png"
import
zhufubao
from
"../../assets/punchTheClock/zhifubaotup.png"
let
timer
=
null
;
export
default
{
name
:
"guidelines"
,
data
()
{
return
{
micromessenger
:
0
,
// 判断在微信里还是在浏览器里
zhiying
:
zhiying
,
// 图片
zhufubao
:
zhufubao
}
},
methods
:
{
outTrade
()
{
timer
=
setInterval
(()
=>
{
let
outTradEno
=
JSON
.
parse
(
window
.
localStorage
.
out_trade_no
);
getBillRefreshApi
({
outTradeNo
:
outTradEno
.
out_trade_no
}).
then
(
res
=>
{
// 支付成功
if
(
res
.
status
===
"SUCCESS"
)
{
getCourseInfoApi
().
then
(
response
=>
{
this
.
userCourse
=
JSON
.
parse
(
JSON
.
stringify
(
response
));
console
.
log
(
this
.
userCourse
)
localStorage
.
setItem
(
"userCourse"
,
JSON
.
stringify
(
this
.
userCourse
));
localStorage
.
setItem
(
"buyindex"
,
1
);
Dialog
.
confirm
({
title
:
'标题'
,
message
:
'支付成功'
,
confirmButtonText
:
'去查看'
}).
then
(()
=>
{
if
(
response
.
teacher_alias
&&
response
.
teacher_alias
.
substr
(
0
,
1
)
==
1
&&
outTradEno
.
goods_type
!=
4
&&
outTradEno
.
is_subscribe
==
1
)
{
clearInterval
(
timer
);
this
.
$router
.
push
({
name
:
"guide"
,
query
:
{
shopId
:
outTradEno
.
shopId
}});
localStorage
.
removeItem
(
'out_trade_no'
)
}
else
{
if
(
res
.
buy_type
==
1
)
{
clearInterval
(
timer
);
this
.
$router
.
push
({
name
:
"buySuccess"
,
query
:
outTradEno
});
localStorage
.
removeItem
(
'out_trade_no'
)
}
else
{
clearInterval
(
timer
);
this
.
$router
.
push
({
name
:
"success"
,
query
:
outTradEno
});
localStorage
.
removeItem
(
'out_trade_no'
)
}
}
}).
catch
(()
=>
{
clearInterval
(
timer
);
localStorage
.
removeItem
(
'out_trade_no'
)
});
});
}
else
if
(
res
.
status
===
"NO_SYNC"
)
{
Dialog
.
confirm
({
title
:
'标题'
,
message
:
'您有一笔未支付的订单'
,
confirmButtonText
:
'去支付'
}).
then
(()
=>
{
clearInterval
(
timer
);
location
.
href
=
`http://
${
window
.
location
.
host
}
/#/guidelines?pay_url=
${
encodeURI
(
window
.
localStorage
.
pay_url
)}
&out_trade_no=
${
window
.
localStorage
.
out_trade_no
}
`
localStorage
.
removeItem
(
'out_trade_no'
)
}).
catch
(()
=>
{
clearInterval
(
timer
);
localStorage
.
removeItem
(
'out_trade_no'
)
});
}
})
},
6000
)
}
},
mounted
()
{
// 0 -> 微信 1 -> 支付宝
this
.
micromessenger
=
common
.
isWeixinBrowser
()
// 到浏览器里支付宝支付
if
(
this
.
micromessenger
==
1
)
{
location
.
href
=
this
.
$route
.
query
.
pay_url
}
if
(
this
.
$route
.
query
.
out_trade_no
)
{
localStorage
.
setItem
(
'out_trade_no'
,
this
.
$route
.
query
.
out_trade_no
);
}
this
.
outTrade
()
}
}
</
script
>
<
style
scoped
lang=
"less"
>
@import "../../util/public";
.guidelines {
width: 100%;
height: 100%;
padding-top: 3 * @toVw;
background: #F3F2F7;
text-align: center;
.zhiying {
width: 244 * @toVw;
height: 361 * @toVw;
margin-left: 112 * @toVw;
box-sizing: border-box;
img {
width: 100%;
height: 100%;
}
}
}
</
style
>
src/components/punchTheClock/index.vue
View file @
613d40ed
This diff is collapsed.
Click to expand it.
src/router/index.js
View file @
613d40ed
...
@@ -571,6 +571,12 @@ const router = new Router({
...
@@ -571,6 +571,12 @@ const router = new Router({
name
:
'punchTheClock'
,
name
:
'punchTheClock'
,
component
:
e
=>
require
([
'@/components/punchTheClock'
],
e
)
component
:
e
=>
require
([
'@/components/punchTheClock'
],
e
)
},
},
// 微信跳转支付宝
{
path
:
'/guidelines'
,
name
:
'guidelines'
,
component
:
e
=>
require
([
'@/components/buy/guidelines'
],
e
)
},
{
{
path
:
'*'
,
path
:
'*'
,
component
:
()
=>
import
(
'@/components/error'
),
component
:
()
=>
import
(
'@/components/error'
),
...
...
src/service/api.js
View file @
613d40ed
...
@@ -431,3 +431,9 @@ const getNewCashUrl = `${_baseUrl}api/client/new/return/cash/`
...
@@ -431,3 +431,9 @@ const getNewCashUrl = `${_baseUrl}api/client/new/return/cash/`
export
const
getNewCashApi
=
function
(
element_id
,
category_id
,
periods_id
,
json
)
{
export
const
getNewCashApi
=
function
(
element_id
,
category_id
,
periods_id
,
json
)
{
return
Vue
.
prototype
.
$fetch
(
`
${
getNewCashUrl
}${
element_id
}
/
${
category_id
}
/
${
periods_id
}
`
,
json
)
return
Vue
.
prototype
.
$fetch
(
`
${
getNewCashUrl
}${
element_id
}
/
${
category_id
}
/
${
periods_id
}
`
,
json
)
};
};
// 订单状态查询
const
getBillRefreshUrl
=
`
${
_baseUrl
}
api/client/bill/refresh`
export
const
getBillRefreshApi
=
function
(
json
)
{
return
Vue
.
prototype
.
$fetch
(
getBillRefreshUrl
,
json
)
};
src/util/common.js
View file @
613d40ed
...
@@ -118,5 +118,32 @@ export default {
...
@@ -118,5 +118,32 @@ export default {
}
}
}
}
return
newObj
;
return
newObj
;
},
/**
* 判断是否在那个浏览器里
* @returns {number}
*/
isWeixinBrowser
()
{
var
ui
=
0
// 0 -> 微信 2 -> 支付宝 1 -> 其他
if
(
/MicroMessenger/
.
test
(
window
.
navigator
.
userAgent
))
{
ui
=
0
}
else
if
(
/AlipayClient/
.
test
(
window
.
navigator
.
userAgent
))
{
ui
=
2
}
else
{
ui
=
1
}
return
ui
;
},
/**
* 获取链接后的参数
* @param name
* @param url
* @returns {RegExpExecArray | string}
*/
getParamByName
(
name
,
url
)
{
url
=
url
||
window
.
location
;
var
match
=
RegExp
(
'[?&]'
+
name
+
'=([^&]*)'
).
exec
(
url
);
return
match
&&
decodeURIComponent
(
match
[
1
].
replace
(
/
\+
/g
,
' '
))
}
}
}
}
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