Compare commits
394 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
2ecb39afb1 | |
|
|
93bf0f35ff | |
|
|
08a4983e92 | |
|
|
d8ef1bdb40 | |
|
|
948ea77ee6 | |
|
|
ea57703e35 | |
|
|
b8c47e899d | |
|
|
12e98d2829 | |
|
|
13c270f4e6 | |
|
|
5f1d2db2bd | |
|
|
92e53ae8b2 | |
|
|
f53512d2a3 | |
|
|
1740c48292 | |
|
|
6f70c40f84 | |
|
|
b1c9c15ea1 | |
|
|
9f193da9b6 | |
|
|
54efe2291b | |
|
|
91c5592191 | |
|
|
18aedc57c2 | |
|
|
d7a604f7ff | |
|
|
bc88a048aa | |
|
|
cc3bc45da5 | |
|
|
ccb2fc8375 | |
|
|
d4237d4365 | |
|
|
339ddfc493 | |
|
|
58d7250464 | |
|
|
54d2f057c2 | |
|
|
db3eed0163 | |
|
|
a69313043b | |
|
|
e5bf7116ea | |
|
|
c734bdffdd | |
|
|
eea419f19e | |
|
|
ba74f1009d | |
|
|
ff6a2c7f0b | |
|
|
aa2e7d1ca4 | |
|
|
e425f9dafc | |
|
|
351a6fa5f7 | |
|
|
72562093fa | |
|
|
4ea69ba20b | |
|
|
409f7c5aef | |
|
|
c463954279 | |
|
|
b2431878bc | |
|
|
c2f881026d | |
|
|
f98abcc079 | |
|
|
63a432c07c | |
|
|
9e3860fdb1 | |
|
|
5066b48d0f | |
|
|
8180b1d5ca | |
|
|
40ffab1479 | |
|
|
ef019ba0d7 | |
|
|
953b0d05ce | |
|
|
b8f0c0f5e9 | |
|
|
38af72524b | |
|
|
de48d7f933 | |
|
|
abb08018d3 | |
|
|
4819da8b9d | |
|
|
ffdcec41c8 | |
|
|
6d5b9497a1 | |
|
|
773a888458 | |
|
|
c53fb5502d | |
|
|
7396f577e1 | |
|
|
cf0177da4b | |
|
|
5662fd6e4f | |
|
|
688f814c2e | |
|
|
95be7e966f | |
|
|
2077b19cc3 | |
|
|
cc15878f9c | |
|
|
5d3cdf848a | |
|
|
c3d700d398 | |
|
|
cfc982e79c | |
|
|
1d26fbb535 | |
|
|
4145bb9e5a | |
|
|
c8fd4dfa2a | |
|
|
6cdb3c5840 | |
|
|
3695041951 | |
|
|
39a6a720e7 | |
|
|
b0b8406104 | |
|
|
02b71cbf23 | |
|
|
e3fc3fa6c5 | |
|
|
09c465c74e | |
|
|
3698ff6379 | |
|
|
cfe567a206 | |
|
|
246d48a6e4 | |
|
|
731ba1a434 | |
|
|
1c54f71329 | |
|
|
d1bca91769 | |
|
|
05ad8ffaae | |
|
|
d5a096038d | |
|
|
6710481852 | |
|
|
db9003585a | |
|
|
20029e7aaf | |
|
|
802f40aa26 | |
|
|
8d650e9959 | |
|
|
53346e3183 | |
|
|
af0a7e81ea | |
|
|
34a175e3e6 | |
|
|
e568b853a6 | |
|
|
08911e544e | |
|
|
f01510c172 | |
|
|
50379d7b1f | |
|
|
03afcf6b0d | |
|
|
860b14fdf5 | |
|
|
c1a8de99a2 | |
|
|
eb60dbbab3 | |
|
|
94a75cd374 | |
|
|
ca19590876 | |
|
|
1611c92782 | |
|
|
4bedd70016 | |
|
|
78f071dfda | |
|
|
6d450987ba | |
|
|
e6cc9605a6 | |
|
|
0da8cd5f3b | |
|
|
f237774e0e | |
|
|
d12f35e078 | |
|
|
4a7938a2c5 | |
|
|
643b9f3e26 | |
|
|
6fb98974d6 | |
|
|
cbcd1c857c | |
|
|
47bd309729 | |
|
|
0801eed870 | |
|
|
820fb9aea6 | |
|
|
f3615bfbb8 | |
|
|
da80801e8c | |
|
|
36d8f2fd39 | |
|
|
9322432b5e | |
|
|
6f3f205a28 | |
|
|
54910d3330 | |
|
|
d5059305e7 | |
|
|
a413d150ae | |
|
|
e01198b1dd | |
|
|
0362307423 | |
|
|
3cd1b88ff5 | |
|
|
ad94cbf772 | |
|
|
4995135cda | |
|
|
82ebef76b1 | |
|
|
59d18fb606 | |
|
|
66a1b54044 | |
|
|
1a5e4de454 | |
|
|
054d24bf1f | |
|
|
24cef44b8a | |
|
|
77c4f0ad92 | |
|
|
756a7e4267 | |
|
|
68b54a75f7 | |
|
|
ae7741ad5a | |
|
|
b6a04b2f7c | |
|
|
7a688e13e8 | |
|
|
989a527081 | |
|
|
0545f6a3e3 | |
|
|
52edbfc424 | |
|
|
27a7af2005 | |
|
|
8337bd0352 | |
|
|
8c8b8b1b11 | |
|
|
0b5244171f | |
|
|
15e22f8b5a | |
|
|
423d5fb47f | |
|
|
e51a518574 | |
|
|
440811c3fa | |
|
|
dd96c6867f | |
|
|
646379471f | |
|
|
2d1ccf6793 | |
|
|
5b3eb4f602 | |
|
|
eb985fc8f1 | |
|
|
28bab311d3 | |
|
|
2346929566 | |
|
|
3960ff7586 | |
|
|
32725014a2 | |
|
|
1fee3f3d0f | |
|
|
fef62822c3 | |
|
|
70594ec8cb | |
|
|
0e52db9042 | |
|
|
36dc91df60 | |
|
|
0f76db88ae | |
|
|
06d0ff416d | |
|
|
b170325a4a | |
|
|
08c1deb4dc | |
|
|
9326ee6eae | |
|
|
ab4eeb1b8b | |
|
|
db54cf81f7 | |
|
|
cbe5fca1bf | |
|
|
d312b614d7 | |
|
|
43722d9b00 | |
|
|
252fc8c425 | |
|
|
c11ccf9e6b | |
|
|
a787c014cb | |
|
|
78436969a6 | |
|
|
5390308a9f | |
|
|
8ae7639d1c | |
|
|
63af9f39c7 | |
|
|
89770feb70 | |
|
|
0661a4d616 | |
|
|
7a3d2d3477 | |
|
|
fa72a47277 | |
|
|
33e462c64f | |
|
|
2ff5ebfd71 | |
|
|
4b592b14ab | |
|
|
5280de71c0 | |
|
|
9bc7e710cc | |
|
|
415269084f | |
|
|
5fe52bb52a | |
|
|
35854982fb | |
|
|
35af3b0652 | |
|
|
b35b2ed530 | |
|
|
e598f50faf | |
|
|
c719ce1f27 | |
|
|
7c339bc617 | |
|
|
a67f470f5c | |
|
|
4c8c89a844 | |
|
|
24b7eae649 | |
|
|
9600fcf2a9 | |
|
|
cfde959d35 | |
|
|
defeede5d7 | |
|
|
f87a4b285e | |
|
|
a7f6209b08 | |
|
|
52506bb2af | |
|
|
c9826276e9 | |
|
|
b2fd3ba347 | |
|
|
896cf17599 | |
|
|
4d52a796da | |
|
|
908205200b | |
|
|
168665eebc | |
|
|
3535322923 | |
|
|
86af5ab3a9 | |
|
|
4232765731 | |
|
|
206546aed8 | |
|
|
a147eaab4f | |
|
|
8488799080 | |
|
|
a0e49f9830 | |
|
|
444b897528 | |
|
|
8e7d038dba | |
|
|
a30d2ed9fa | |
|
|
dc67568b6b | |
|
|
c401d2695d | |
|
|
71f0e2215c | |
|
|
66e9d9a460 | |
|
|
5c067b3ef7 | |
|
|
3de0070cb6 | |
|
|
f9f33f7086 | |
|
|
50fd6369a9 | |
|
|
ad01ea7faf | |
|
|
2cd3dbf0ac | |
|
|
f4796c76f0 | |
|
|
a5554ae3ea | |
|
|
6376a92caf | |
|
|
de3cf30105 | |
|
|
0636654dc2 | |
|
|
a291c2f629 | |
|
|
e4f6a3b14a | |
|
|
a03f005009 | |
|
|
dee181749b | |
|
|
9ac5b0c512 | |
|
|
57cfb4babd | |
|
|
b5b403c7b1 | |
|
|
43c79cc554 | |
|
|
f7650fb95f | |
|
|
3738cd5344 | |
|
|
0c0a30e85a | |
|
|
cfaadad802 | |
|
|
57fbc3c9b9 | |
|
|
497e9b9311 | |
|
|
210737d357 | |
|
|
56c84e1b18 | |
|
|
2d61ed447f | |
|
|
88d32d8789 | |
|
|
efd651aac7 | |
|
|
087bb2b3e2 | |
|
|
66f7b6f57a | |
|
|
aa7f7f3392 | |
|
|
b4542559ae | |
|
|
5372daf2a7 | |
|
|
3c209118a6 | |
|
|
e7afd83085 | |
|
|
fa60aeec42 | |
|
|
31601ff334 | |
|
|
cfcc0c15ec | |
|
|
e79e7f5874 | |
|
|
421a3fe4f1 | |
|
|
ec7c3742bf | |
|
|
30ba7cde34 | |
|
|
4b9d78ec5a | |
|
|
7b6044f4eb | |
|
|
119a3d3c07 | |
|
|
3b6d560539 | |
|
|
e822e614b8 | |
|
|
b344413b2a | |
|
|
073f8a0797 | |
|
|
f0edf9f419 | |
|
|
5ad0d54662 | |
|
|
3ff35d7eb6 | |
|
|
9083c9a454 | |
|
|
3d7d5178e6 | |
|
|
f3f9af86f9 | |
|
|
d5aac20fd0 | |
|
|
44a9d8669e | |
|
|
fbdeaee553 | |
|
|
b5a610660e | |
|
|
e39688ab9f | |
|
|
679df05a66 | |
|
|
d7650332a2 | |
|
|
0a27d79563 | |
|
|
6fe850ed20 | |
|
|
2c14e6c588 | |
|
|
6b40cf8089 | |
|
|
3edfedb4ab | |
|
|
8ba1fd7f96 | |
|
|
9f4e438a31 | |
|
|
55fa85a8a3 | |
|
|
c531d15343 | |
|
|
f48de14b28 | |
|
|
3be46138ae | |
|
|
0699489b2d | |
|
|
a87c94fdba | |
|
|
21cf4b9524 | |
|
|
c83901fb46 | |
|
|
fa5f11cac3 | |
|
|
ae276c6a50 | |
|
|
9b565065f9 | |
|
|
264739b6e7 | |
|
|
9f6eb2eb09 | |
|
|
ca7c293d0e | |
|
|
4964043cda | |
|
|
61a878b326 | |
|
|
d05abf5c80 | |
|
|
dc4bf2a5c1 | |
|
|
f1f5582381 | |
|
|
afa4afbab6 | |
|
|
483423531d | |
|
|
f87dbc2ff5 | |
|
|
5458022b20 | |
|
|
9bb1b060e3 | |
|
|
6f931f7157 | |
|
|
78c8acf09b | |
|
|
f1728def4e | |
|
|
97f627fded | |
|
|
ca6baa5254 | |
|
|
608c7b1678 | |
|
|
85e1b96557 | |
|
|
2edc997c39 | |
|
|
b1978752aa | |
|
|
69b1f22c82 | |
|
|
72347c4c7b | |
|
|
ff44f08b93 | |
|
|
5f109be94d | |
|
|
0041214912 | |
|
|
c63deab9f8 | |
|
|
bd98f12d4d | |
|
|
d63cdea1ec | |
|
|
02ca722970 | |
|
|
c6a81de8fb | |
|
|
4c6603de45 | |
|
|
06b5c4f99b | |
|
|
e796c086f8 | |
|
|
57e7a9c032 | |
|
|
191297c1f6 | |
|
|
da79e53e70 | |
|
|
a234802534 | |
|
|
51d60f2dcb | |
|
|
8b61108053 | |
|
|
f78b4fc14a | |
|
|
014f71b43b | |
|
|
d5aa9080b6 | |
|
|
3ecd48231f | |
|
|
ff96875de7 | |
|
|
665db9bb9a | |
|
|
5a97705726 | |
|
|
f55c9a9ee1 | |
|
|
2404b96717 | |
|
|
f3ca591e6a | |
|
|
1429b7277c | |
|
|
ab815d703d | |
|
|
e7d2b21ec2 | |
|
|
6ad0c6ab09 | |
|
|
817a4f7d55 | |
|
|
d625d301cf | |
|
|
1206f0ea22 | |
|
|
c97811b50d | |
|
|
6d91b3ec15 | |
|
|
2506dd8d57 | |
|
|
51652f2f4f | |
|
|
f77d4b60f9 | |
|
|
98d3572526 | |
|
|
47751a7267 | |
|
|
d85b101e30 | |
|
|
eae93ae6c7 | |
|
|
8a340fabdd | |
|
|
e1eff87490 | |
|
|
fb9733d9eb | |
|
|
bf17bb3a5d | |
|
|
400126ffeb | |
|
|
30ceee0f2b | |
|
|
c7df084278 | |
|
|
9156891770 | |
|
|
f15ed3a330 | |
|
|
3bcc491fc2 | |
|
|
fb8c9f8431 |
|
|
@ -0,0 +1,2 @@
|
|||
/unpackage/
|
||||
/test/
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"version" : "1.0",
|
||||
"configurations" : [
|
||||
{
|
||||
"app-plus" : {
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"default" : {
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"h5" : {
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"mp-weixin" : {
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"provider" : "aliyun",
|
||||
"type" : "uniCloud"
|
||||
},
|
||||
{
|
||||
"playground" : "custom",
|
||||
"type" : "uni-app:app-android"
|
||||
},
|
||||
{
|
||||
"playground" : "standard",
|
||||
"type" : "uni-app:app-ios"
|
||||
}
|
||||
]
|
||||
}
|
||||
376
App.vue
|
|
@ -1,6 +1,36 @@
|
|||
<script>
|
||||
import config from '@/common/config.js'
|
||||
import {isH5Android} from '@/utils/app.js'
|
||||
import {init} from '@/utils/init.js'
|
||||
import {cacheClearAll} from '@/store/cashe.js'
|
||||
import store from './store/index.js'
|
||||
export default {
|
||||
onLaunch: function() {
|
||||
console.log('onLaunch')
|
||||
cacheClearAll()
|
||||
// #ifdef H5
|
||||
//防止刷新过快
|
||||
if(process.env.NODE_ENV === 'production'){
|
||||
const prveTime=uni.getStorageSync('time')
|
||||
const time=Date.now()
|
||||
uni.setStorageSync('time',time)
|
||||
if(prveTime&&time-prveTime<=2000){
|
||||
uni.setStorageSync('isDisabledAll',true)
|
||||
uni.request=()=>{
|
||||
|
||||
}
|
||||
uni.removeStorageSync('prveTime')
|
||||
return uni.showToast({
|
||||
title:'休息一会儿吧,你刷新的太过频繁了!',
|
||||
icon:'error'
|
||||
})
|
||||
}else{
|
||||
uni.removeStorageSync('isDisabledAll')
|
||||
}
|
||||
}
|
||||
// #endif
|
||||
|
||||
|
||||
let that = this
|
||||
// #ifdef MP-WEIXIN || MP-TOUTIAO
|
||||
//是否开启小程序自动登录 881
|
||||
|
|
@ -271,62 +301,29 @@
|
|||
// #endif
|
||||
|
||||
|
||||
// setInterval(d => { //定时器,定时去调取聊天未读消息
|
||||
// let userId = uni.getStorageSync('userId')
|
||||
// if (userId) {
|
||||
// this.$Request.getT('/app/message/selectMessageCount').then(res => {
|
||||
// if (res.code === 0) {
|
||||
// let num = res.data
|
||||
// uni.setStorageSync('numCount', num)
|
||||
// if (num == 0) {
|
||||
// uni.removeTabBarBadge({
|
||||
// index: 3
|
||||
// })
|
||||
// } else {
|
||||
// uni.setTabBarBadge({
|
||||
// index: 3,
|
||||
// text: num + ''
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// }, 3000);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
setInterval(d => { //定时器,定时去调取聊天未读消息
|
||||
let userId = uni.getStorageSync('userId')
|
||||
if (userId) {
|
||||
this.$Request.getT('/app/message/selectMessageCount').then(res => {
|
||||
if (res.code === 0) {
|
||||
let num = res.data
|
||||
uni.setStorageSync('numCount', num)
|
||||
if (num == 0) {
|
||||
uni.removeTabBarBadge({
|
||||
index: 3
|
||||
})
|
||||
} else {
|
||||
uni.setTabBarBadge({
|
||||
index: 3,
|
||||
text: num + ''
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}, 3000);
|
||||
//#ifdef H5
|
||||
|
||||
this.$u.get('/app/common/type/108').then(res => { //// 是否开启公众号自动登陆 108
|
||||
if (res.code == 0 && res.data) {
|
||||
if (res.data.value == '是') {
|
||||
let ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger') !== -1) {
|
||||
let openid = uni.getStorageSync('openId');
|
||||
let userId = uni.getStorageSync('userId');
|
||||
if (!userId) {
|
||||
if (openid) {
|
||||
that.$u.get('/app/Login/openid/login?openId=' + openid).then(
|
||||
res => {
|
||||
if (res.code == 0) {
|
||||
uni.setStorageSync('token', res.token)
|
||||
uni.setStorageSync('userId', res.user.userId)
|
||||
uni.setStorageSync('userName', res.user.userName)
|
||||
uni.setStorageSync('phone', res.user.phone)
|
||||
uni.setStorageSync('invitationCode', res.user
|
||||
.invitationCode)
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
//#endif
|
||||
|
||||
//#ifdef APP-PLUS
|
||||
// APP检测更新 具体打包流程可以参考:https://ask.dcloud.net.cn/article/35667
|
||||
plus.screen.lockOrientation('portrait-primary'); //竖屏正方向锁定
|
||||
|
|
@ -366,12 +363,23 @@
|
|||
}
|
||||
});
|
||||
} else {
|
||||
//获取当前系统版本信息
|
||||
//获取当前系统版本信息
|
||||
plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
|
||||
//请求后台接口 解析数据 对比版本
|
||||
that.$Request.getT('/app/user/selectNewApp').then(res => {
|
||||
res = res.data[0];
|
||||
if (res.wgtUrl && widgetInfo.version < res.version) {
|
||||
console.log(widgetInfo)
|
||||
console.log(res)
|
||||
let version;
|
||||
if (uni.getSystemInfoSync().platform == 'android') {
|
||||
version = res.version
|
||||
}
|
||||
if (uni.getSystemInfoSync().platform == 'ios') {
|
||||
version = res.iosVersion
|
||||
}
|
||||
version = res.version
|
||||
// && uni.getSystemInfoSync().platform == 'android'
|
||||
if (widgetInfo.version < version) {
|
||||
let downloadLink = '';
|
||||
let androidLink = res.androidWgtUrl;
|
||||
let iosLink = res.iosWgtUrl;
|
||||
|
|
@ -455,20 +463,30 @@
|
|||
}
|
||||
} else {
|
||||
//不是热更新是在线更新 校验是否强制升级
|
||||
if (res.method == 'true') {
|
||||
|
||||
if (res.method == "true") {
|
||||
uni.showModal({
|
||||
showCancel: false,
|
||||
confirmText: '立即更新',
|
||||
title: '发现新版本',
|
||||
confirmText: '立即更新',
|
||||
content: res.des,
|
||||
success: res => {
|
||||
if (res.confirm) {
|
||||
that.$queue.showLoading('下载中...');
|
||||
plus.runtime.openURL(config.APIHOST2 +
|
||||
'/pages/login/appEq')
|
||||
return
|
||||
uni.showLoading({
|
||||
title: '下载中...',
|
||||
mask: true
|
||||
});
|
||||
if (uni.getSystemInfoSync().platform ==
|
||||
'android') {
|
||||
uni.downloadFile({
|
||||
url: androidLink,
|
||||
success: downloadResult => {
|
||||
console.log(
|
||||
downloadResult
|
||||
)
|
||||
if (downloadResult
|
||||
.statusCode ===
|
||||
200) {
|
||||
|
|
@ -487,12 +505,25 @@
|
|||
.restart();
|
||||
},
|
||||
e => {
|
||||
console
|
||||
.log(
|
||||
e
|
||||
)
|
||||
console
|
||||
.error(
|
||||
'install fail...'
|
||||
);
|
||||
}
|
||||
);
|
||||
// plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, entry => {
|
||||
// entry.getParent(_oldFile=>{
|
||||
// entry.moveTo(_oldFile,'.apk',newFilePath=>{
|
||||
// console.log('newFilePath',newFilePath.fullPath)
|
||||
|
||||
// })
|
||||
// })
|
||||
// })
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -515,7 +546,13 @@
|
|||
content: res.des,
|
||||
success: res => {
|
||||
if (res.confirm) {
|
||||
that.$queue.showLoading('下载中...');
|
||||
plus.runtime.openURL(config.APIHOST2 +
|
||||
'/pages/login/appEq')
|
||||
return
|
||||
uni.showLoading({
|
||||
title: '下载中...',
|
||||
mask: true
|
||||
});
|
||||
if (uni.getSystemInfoSync().platform ==
|
||||
'android') {
|
||||
uni.downloadFile({
|
||||
|
|
@ -539,12 +576,41 @@
|
|||
.restart();
|
||||
},
|
||||
e => {
|
||||
console
|
||||
.log(
|
||||
e
|
||||
)
|
||||
console
|
||||
.error(
|
||||
'install fail...'
|
||||
);
|
||||
}
|
||||
);
|
||||
// plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, entry => {
|
||||
// entry.getParent(_oldFile=>{
|
||||
// entry.moveTo(_oldFile,'.apk',newFilePath=>{
|
||||
// console.log('newFilePath',newFilePath.fullPath)
|
||||
// plus.runtime
|
||||
// .install(newFilePath.fullPath, { force: false },
|
||||
// d => {
|
||||
// console
|
||||
// .log(
|
||||
// 'install success...'
|
||||
// );
|
||||
// plus.runtime
|
||||
// .restart();
|
||||
// },
|
||||
// e => {
|
||||
// console.log(e)
|
||||
// console
|
||||
// .error(
|
||||
// 'install fail...'
|
||||
// );
|
||||
// }
|
||||
// );
|
||||
// })
|
||||
// })
|
||||
// })
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -569,6 +635,12 @@
|
|||
|
||||
},
|
||||
onShow: function() {
|
||||
init()
|
||||
|
||||
// #ifdef H5
|
||||
// isH5Android()
|
||||
// #endif
|
||||
|
||||
console.log('App Show')
|
||||
// #ifdef APP-PLUS
|
||||
let userId = uni.getStorageSync('userId')
|
||||
|
|
@ -593,183 +665,8 @@
|
|||
// uni.setStorageSync('kefu', res.data.value)
|
||||
// }
|
||||
// });
|
||||
//微信小程序IOS系统支付功能开关 882
|
||||
this.$u.get('/app/common/type/882').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
let value = res.data.value
|
||||
const sysInfo = uni.getSystemInfoSync()
|
||||
// #ifdef MP-WEIXIN
|
||||
if (sysInfo.osName == 'ios') { //是ios系统
|
||||
if (value == '是') { //开启
|
||||
uni.setStorageSync('isWxIosPay', true)
|
||||
} else { //关闭
|
||||
uni.setStorageSync('isWxIosPay', false)
|
||||
}
|
||||
} else { //不是ios下,直接打开
|
||||
uni.setStorageSync('isWxIosPay', true)
|
||||
}
|
||||
// #endif
|
||||
//不在微信小程序也直接打开
|
||||
// #ifndef MP-WEIXIN
|
||||
uni.setStorageSync('isWxIosPay', true)
|
||||
// #endif
|
||||
}
|
||||
});
|
||||
//是否开启苹果登录 833
|
||||
this.$u.get('/app/common/type/833').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('checkIosLogin', res.data.value)
|
||||
}
|
||||
});
|
||||
//是否开启苹果支付 834
|
||||
this.$u.get('/app/common/type/834').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('checkIosPay', res.data.value)
|
||||
}
|
||||
});
|
||||
//是否开启微信登录 835
|
||||
this.$u.get('/app/common/type/835').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('checkWxLogin', res.data.value)
|
||||
}
|
||||
});
|
||||
//是否开启手机号一键登录 836
|
||||
this.$u.get('/app/common/type/836').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('checkPhoneLogin', res.data.value)
|
||||
}
|
||||
});
|
||||
this.$u.get('/app/common/type/817').then(res => { //是否开启购买整部视频 817
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('zhengbu', res.data.value)
|
||||
}
|
||||
});
|
||||
|
||||
this.$u.get('/app/common/type/818').then(res => { //是否开启购买单集视频 818
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('danbu', res.data.value)
|
||||
}
|
||||
});
|
||||
// 微信激励广告id 252
|
||||
this.$u.get('/app/common/type/252').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('adUnitId', res.data.value)
|
||||
}
|
||||
});
|
||||
// 播放类型 1:抖音云 2:三方云
|
||||
this.$u.get('/app/common/type/821').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('playType', res.data.value)
|
||||
}
|
||||
});
|
||||
// 是否开启看广告(微信) 251
|
||||
this.$u.get('/app/common/type/251').then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.data && res.data.value) {
|
||||
uni.setStorageSync('isGuanggao', res.data.value)
|
||||
}
|
||||
}
|
||||
});
|
||||
// 是否开启看广告(抖音) 254
|
||||
this.$u.get('/app/common/type/254').then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.data && res.data.value) {
|
||||
uni.setStorageSync('isGuanggaody', res.data.value)
|
||||
}
|
||||
}
|
||||
});
|
||||
this.$u.get('/app/common/type/202').then(res => { //客服配置 1 二维码客服 2 微信公众号客服 3电话客服
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('kefu', res.data.value)
|
||||
}
|
||||
});
|
||||
this.$u.get('/app/common/type/206').then(res => { //客服电话
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('kefuPhone', res.data.value)
|
||||
}
|
||||
});
|
||||
this.$u.get('/app/common/type/204').then(res => { //微信客服链接
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('kefuUrl', res.data.value)
|
||||
}
|
||||
});
|
||||
this.$u.get('/app/common/type/203').then(res => { //微信客服appid
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('kefuAppId', res.data.value)
|
||||
}
|
||||
});
|
||||
//会员开关
|
||||
this.$u.get('/app/common/type/248').then(res => { //会员开关
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('isVips', res.data.value)
|
||||
}
|
||||
});
|
||||
//热搜词 249
|
||||
this.$u.get('/app/common/type/249').then(res => { //热搜词
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('moreSearch', res.data.value)
|
||||
}
|
||||
});
|
||||
//安卓下载地址 49
|
||||
this.$u.get('/app/common/type/49').then(res => { //热搜词
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('AppUrl', res.data.value)
|
||||
}
|
||||
});
|
||||
//微信虚拟支付OfferID 823
|
||||
this.$u.get('/app/common/type/823').then(res => { //热搜词
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('OfferID', res.data.value)
|
||||
}
|
||||
});
|
||||
//微信虚拟支付环境(0 米大师正式环境, 1 米大师沙箱环境) 824
|
||||
this.$u.get('/app/common/type/824').then(res => { //热搜词
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('payEnv', res.data.value)
|
||||
}
|
||||
});
|
||||
//充值提示 825
|
||||
this.$u.get('/app/common/type/825').then(res => { //热搜词
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('moneyTips', res.data.value)
|
||||
}
|
||||
});
|
||||
//是否开启卡密充值 855
|
||||
this.$u.get('/app/common/type/855').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('kmPaySel', res.data.value)
|
||||
}
|
||||
});
|
||||
//是否开启分类 849
|
||||
this.$u.get('/app/common/type/849').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('homeTypeSel', res.data.value)
|
||||
}
|
||||
});
|
||||
//是否开启收益充值余额 856
|
||||
this.$u.get('/app/common/type/856').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('syPaySel', res.data.value)
|
||||
}
|
||||
});
|
||||
//抖音im客服 857
|
||||
this.$u.get('/app/common/type/857').then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('imId', res.data.value)
|
||||
}
|
||||
});
|
||||
this.$u.get('/app/common/type/858').then(res => { //是否开启公众号充值
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('isAccountPay', res.data.value)
|
||||
}
|
||||
});
|
||||
//抖音广告id
|
||||
this.$u.get('/app/common/type/860').then(res => { //抖音广告
|
||||
if (res.code == 0 && res.data) {
|
||||
uni.setStorageSync('dyadUnitId', res.data.value)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
// #ifdef H5
|
||||
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
|
||||
//是否开启pc端使用 850
|
||||
|
|
@ -798,4 +695,7 @@
|
|||
@import "uview-ui/index.scss";
|
||||
@import 'components/colorui/main.css';
|
||||
@import 'components/colorui/icon.css';
|
||||
@import '@/common/style/common.scss';
|
||||
@import './tuniao-ui/index.scss';
|
||||
@import './tuniao-ui/iconfont.css';
|
||||
</style>
|
||||
|
|
@ -1,27 +1,25 @@
|
|||
const ROOTPATH1 = "https://duanju.xianmxkj.com/sqx_fast"; //
|
||||
const ROOTPATH = "https://duanju.xianmxkj.com/sqx_fast"; //后台服务域名
|
||||
const ROOTPATH2 = "https://duanju.xianmxkj.com"; //后台服务域名
|
||||
// APP
|
||||
// const ROOTPATH1 = "https://dj-api.hnsiyao.cn/czg/"; //正式
|
||||
// const ROOTPATH = "https://dj-api.hnsiyao.cn/czg/"; //后台服务域名
|
||||
// const ROOTPATH2 = "https://dj-h5.hnsiyao.cn"; //后台服务域名
|
||||
|
||||
// const ROOTPATH1 = location.origin + "/sqx_fast"; //
|
||||
// const ROOTPATH = location.origin + "/sqx_fast"; //后台服务域名
|
||||
// const ROOTPATH2 = location.origin; //后台服务域名
|
||||
// const ROOTPATH1 = "https://video.hnsiyao.cn/czg/"; //测试
|
||||
// const ROOTPATH = "https://video.hnsiyao.cn/czg/"; //后台服务域名
|
||||
// const ROOTPATH2 = "https://video-h5.hnsiyao.cn"; //后台服务域名
|
||||
|
||||
// const ROOTPATH1 = "https://duanju12.xianmxkj.com/sqx_fast"; //
|
||||
// const ROOTPATH = "https://duanju12.xianmxkj.com/sqx_fast"; //后台服务域名
|
||||
// const ROOTPATH2 = "https://duanju12.xianmxkj.com"; //后台服务域名
|
||||
// h5
|
||||
const ROOTPATH1 = "https://web.hnsiyao.cn/czg/"; //正式
|
||||
const ROOTPATH = "https://web.hnsiyao.cn/czg/"; //后台服务域名
|
||||
const ROOTPATH2 = "https://dj-h5.hnsiyao.cn"; //后台服务域名
|
||||
|
||||
// const ROOTPATH1 = "https://wap.xingqiu1985.com/sqx_fast"; //
|
||||
// const ROOTPATH = "https://wap.xingqiu1985.com/sqx_fast"; //后台服务域名
|
||||
// const ROOTPATH2 = "https://wap.xingqiu1985.com"; //后台服务域名
|
||||
// const ROOTPATH1 = "https://web-api.hnsiyao.cn/czg/"; //测试
|
||||
// const ROOTPATH = "https://web-api.hnsiyao.cn/czg/"; //后台服务域名
|
||||
// const ROOTPATH2 = "https://video-h5.hnsiyao.cn"; //后台服务域名
|
||||
|
||||
// const ROOTPATH1 = "http://192.168.1.41:8100/czg/"; //
|
||||
// const ROOTPATH = "http://192.168.1.41:8100/czg/"; //后台服务域名
|
||||
// const ROOTPATH2 = "http://192.168.1.41:8100"; //后台服务域名
|
||||
|
||||
// const ROOTPATH1 = "https://jc.118zp.com/sqx_fast"; //
|
||||
// const ROOTPATH = "https://jc.118zp.com/sqx_fast"; //后台服务域名
|
||||
// const ROOTPATH2 = "https://jc.118zp.com"; //后台服务域名
|
||||
|
||||
// const ROOTPATH1 = "http://192.168.0.132:8100/sqx_fast"; //后台服务域名
|
||||
// const ROOTPATH = "http://192.168.0.132:8100/sqx_fast"; //后台服务域名
|
||||
// const ROOTPATH2 = "http://192.168.0.132:8100"; //后台服务域名
|
||||
module.exports = {
|
||||
APIHOST: ROOTPATH,
|
||||
APIHOST1: ROOTPATH1,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
export default {
|
||||
baseUrl: 'http://127.0.0.1/',
|
||||
baseApi: 'http://127.0.0.1:7001/',
|
||||
color:{
|
||||
main:'#FFC428',
|
||||
red:'#fa3534'
|
||||
}
|
||||
}
|
||||
|
|
@ -51,16 +51,19 @@ const install = (Vue, vm) => {
|
|||
|
||||
let userMoney = (params = {}) => vm.$u.get('app/invite/selectUserMoney', params); //查看钱包
|
||||
let cashMoney = (params = {}) => vm.$u.get('app/cash/cashMoney', params); //申请提现
|
||||
let withdraw = (params = {}) => vm.$u.get('app/cash/withdraw', params); //申请提现
|
||||
let selectPay = (params = {}) => vm.$u.get('app/cash/selectPayDetails', params); //提现记录
|
||||
let moneyDet = (params = {}) => vm.$u.get('app/cash/queryUserMoneyDetails', params); //钱包明细
|
||||
let type = (params = {}) => vm.$u.get('app/common/type', params); //钱包明细
|
||||
|
||||
let myPurseDet = (params = {}) => vm.$u.get('app/moneyDetails/queryUserMoneyDetails', params); //我的钱包
|
||||
let myPurse = (params = {}) => vm.$u.get('app/moneyDetails/selectUserMoney', params); //钱包明细
|
||||
|
||||
let help = (params = {}) => vm.$u.get('app/helpWord/selectHelpList', params); //帮助中心
|
||||
let helpDet = (params = {}) => vm.$u.get('app/helpWord/selectHelpWordDetails', params); //帮助中心 详情
|
||||
|
||||
//获取视频
|
||||
let selectCourseDetailsById = (params = {}) => vm.$u.get('app/course/selectCourseDetailsById', params);
|
||||
let selectCourseDetailsById = (params = {}) => vm.$u.get('app/course/courseSets', params);
|
||||
|
||||
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
|
||||
vm.$u.api = {
|
||||
|
|
@ -105,10 +108,14 @@ const install = (Vue, vm) => {
|
|||
moneyList,
|
||||
userMoney,
|
||||
cashMoney,
|
||||
withdraw,
|
||||
selectPay,
|
||||
moneyDet,
|
||||
type,
|
||||
|
||||
myPurseDet,
|
||||
myPurse,
|
||||
|
||||
help,
|
||||
helpDet,
|
||||
selectCourseDetailsById
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// 这里的vm,就是我们在vue文件里面的this,所以我们能在这里获取vuex的变量,比如存放在里面的token变量
|
||||
import {APIHOST} from './config.js'
|
||||
import {cacheClearAll} from '@/store/cashe.js'
|
||||
const install = (Vue, vm) => {
|
||||
// 此为自定义配置参数,具体参数见上方说明
|
||||
Vue.prototype.$u.http.setConfig({
|
||||
|
|
@ -26,8 +27,8 @@ const install = (Vue, vm) => {
|
|||
// 所以哪怕您重新登录修改了Storage,下一次的请求将会是最新值
|
||||
const token = uni.getStorageSync('token');
|
||||
config.header.token = token;
|
||||
config.url=config.url.slice(0,1)==='/'?config.url.slice(1,config.url.length):config.url
|
||||
// config.header.Token = 'xxxxxx';
|
||||
|
||||
// 可以对某个url进行特别处理,此url参数为this.$u.get(url)中的url值
|
||||
// if(config.url == '/user/login') config.header.noToken = true;
|
||||
// 最后需要将config进行return
|
||||
|
|
@ -52,6 +53,17 @@ const install = (Vue, vm) => {
|
|||
}, 1500)
|
||||
return false;
|
||||
} else if (res.code == 401) {
|
||||
// 获取当前页面实例
|
||||
const pages = getCurrentPages();
|
||||
// 获取当前页面的实例
|
||||
const currentPage = pages[pages.length - 1];
|
||||
// 获取页面路径
|
||||
const pagePath = currentPage.route
|
||||
const systemInfo = uni.getSystemInfoSync();
|
||||
const isIOS = /iOS/.test(systemInfo.platform);
|
||||
// if ( pagePath == "pages/task/index") {
|
||||
// return;
|
||||
// }
|
||||
// 假设201为token失效,这里跳转登录
|
||||
vm.$u.toast('验证失败,请重新登录');
|
||||
uni.removeStorageSync("token")
|
||||
|
|
@ -64,6 +76,7 @@ const install = (Vue, vm) => {
|
|||
uni.removeStorageSync("isInvitation")
|
||||
uni.removeStorageSync("zhiFuBao")
|
||||
uni.removeStorageSync("zhiFuBaoName")
|
||||
cacheClearAll()
|
||||
// 此为uView的方法,详见路由相关文档
|
||||
vm.$u.route('/pages/login/login')
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,17 @@
|
|||
import configdata from './config'
|
||||
import cache from './cache'
|
||||
|
||||
import {
|
||||
cacheClearAll,cacheClear
|
||||
} from '@/store/cashe.js'
|
||||
function successCallBack(url){
|
||||
if(url.includes('app/courseCollect/insertCourseCollect')){
|
||||
cacheClear('chasingDrama')
|
||||
return
|
||||
}
|
||||
if(url.includes('app/user/updateUser') ){
|
||||
cacheClear('renwu')
|
||||
}
|
||||
}
|
||||
module.exports = {
|
||||
config: function(name) {
|
||||
var info = null;
|
||||
|
|
@ -26,6 +37,17 @@ module.exports = {
|
|||
},
|
||||
logout: function() {
|
||||
let that = this;
|
||||
// 获取当前页面实例
|
||||
const pages = getCurrentPages();
|
||||
// 获取当前页面的实例
|
||||
const currentPage = pages[pages.length - 1];
|
||||
// 获取页面路径
|
||||
const pagePath = currentPage.route
|
||||
const systemInfo = uni.getSystemInfoSync();
|
||||
const isIOS = /iOS/.test(systemInfo.platform);
|
||||
// if ( pagePath == "pages/task/index") {
|
||||
// return;
|
||||
// }
|
||||
uni.removeStorageSync("token")
|
||||
uni.removeStorageSync("userId")
|
||||
uni.removeStorageSync("phone")
|
||||
|
|
@ -36,17 +58,20 @@ module.exports = {
|
|||
uni.removeStorageSync("isInvitation")
|
||||
uni.removeStorageSync("zhiFuBao")
|
||||
uni.removeStorageSync("zhiFuBaoName")
|
||||
|
||||
cacheClearAll()
|
||||
uni.showToast({
|
||||
title: '用户信息失效,请重新登录!',
|
||||
icon: 'none'
|
||||
})
|
||||
|
||||
uni.navigateTo({
|
||||
url: "/pages/login/login"
|
||||
})
|
||||
},
|
||||
post: function(url, data, header) {
|
||||
let that = this;
|
||||
header = header || "application/x-www-form-urlencoded";
|
||||
url = that.config("APIHOST") + url;
|
||||
url = that.config("APIHOST") + url.replace(/^\//, "");
|
||||
return new Promise((succ, error) => {
|
||||
uni.request({
|
||||
url: url,
|
||||
|
|
@ -58,6 +83,8 @@ module.exports = {
|
|||
success: function(result) {
|
||||
if (result.data.code == 401) {
|
||||
that.logout();
|
||||
}else{
|
||||
successCallBack(url)
|
||||
}
|
||||
succ.call(self, result.data)
|
||||
},
|
||||
|
|
@ -70,7 +97,7 @@ module.exports = {
|
|||
postT: function(url, data, header) {
|
||||
let that = this;
|
||||
header = header || "application/x-www-form-urlencoded";
|
||||
url = that.config("APIHOST1") + url;
|
||||
url = that.config("APIHOST1") + url.replace(/^\//, "");
|
||||
// let token = uni.getStorageSync("token");
|
||||
let token = uni.getStorageSync("token");
|
||||
if (token) {
|
||||
|
|
@ -119,7 +146,7 @@ module.exports = {
|
|||
postJson: function(url, data, header) {
|
||||
let that = this;
|
||||
header = header || "application/json";
|
||||
url = that.config("APIHOST1") + url;
|
||||
url = that.config("APIHOST1") + url.replace(/^\//, "");
|
||||
// let token = uni.getStorageSync("token");
|
||||
let token = uni.getStorageSync("token");
|
||||
if (token) {
|
||||
|
|
@ -135,7 +162,11 @@ module.exports = {
|
|||
success: function(result) {
|
||||
if (result.data.code == 401) {
|
||||
that.logout();
|
||||
}else{
|
||||
successCallBack(url)
|
||||
// cacheClear('chasingDrama')
|
||||
}
|
||||
|
||||
succ.call(self, result.data)
|
||||
},
|
||||
fail: function(e) {
|
||||
|
|
@ -168,7 +199,7 @@ module.exports = {
|
|||
getT: function(url, data, header) {
|
||||
let that = this;
|
||||
header = header || "application/x-www-form-urlencoded";
|
||||
url = that.config("APIHOST1") + url;
|
||||
url = that.config("APIHOST1") + url.replace(/^\//, "");
|
||||
// let token = uni.getStorageSync("token");
|
||||
let token = uni.getStorageSync("token");
|
||||
if (token) {
|
||||
|
|
@ -288,7 +319,8 @@ module.exports = {
|
|||
get: function(url, data, header) {
|
||||
let that = this;
|
||||
header = header || "application/x-www-form-urlencoded";
|
||||
url = that.config("APIHOST") + url;
|
||||
url = that.config("APIHOST") + url.replace(/^\//, "");
|
||||
console.log(url);
|
||||
return new Promise((succ, error) => {
|
||||
uni.request({
|
||||
url: url,
|
||||
|
|
@ -335,7 +367,7 @@ module.exports = {
|
|||
get1: function(url, data, header) {
|
||||
let that = this;
|
||||
header = header || "application/json";
|
||||
url = that.config("APIHOST") + url;
|
||||
url = that.config("APIHOST") + url.replace(/^\//, "");
|
||||
return new Promise((succ, error) => {
|
||||
uni.request({
|
||||
url: url,
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@ module.exports = {
|
|||
},
|
||||
//全局域名 部分html中需要单独替换 需要修改config中的网络请求域名
|
||||
publicYuMing() {
|
||||
return 'https://duanju.xianmxkj.com'
|
||||
return 'https://dj-api.hnsiyao.cn'
|
||||
},
|
||||
//全局域名 部分html中需要单独替换 需要修改config中的网络请求域名
|
||||
publicYuMingAll() {
|
||||
return 'https://duanju.xianmxkj.com/sqx_fast'
|
||||
return 'https://dj-api.hnsiyao.cn/sqx_fast/'
|
||||
},
|
||||
minMoney() {
|
||||
return uni.getStorageSync("minMoney") ? uni.getStorageSync("minMoney") : '0.3'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,409 @@
|
|||
.u-relative,
|
||||
.u-rela {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.u-absolute,
|
||||
.u-abso {
|
||||
position: absolute;
|
||||
}
|
||||
.u-fixed,.u-fix{
|
||||
position: fixed;
|
||||
}
|
||||
.left-top{
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.u-overflow-hide{
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
// nvue不能用标签命名样式,不能放在微信组件中,否则微信开发工具会报警告,无法使用标签名当做选择器
|
||||
/* #ifndef APP-NVUE */
|
||||
image {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
// 在weex,也即nvue中,所有元素默认为border-box
|
||||
view,
|
||||
text {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
/* #endif */
|
||||
|
||||
.u-font-xs {
|
||||
font-size: 22rpx;
|
||||
}
|
||||
|
||||
.u-font-sm {
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.u-font-md {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.u-font-lg {
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.u-font-xl {
|
||||
font-size: 34rpx;
|
||||
}
|
||||
|
||||
.u-flex {
|
||||
/* #ifndef APP-NVUE */
|
||||
display: flex;
|
||||
/* #endif */
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.u-flex-wrap {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.u-flex-nowrap {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.u-col-center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.u-col-top {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.u-col-bottom {
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.u-row-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.u-row-left {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.u-row-right {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.u-row-between {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.u-row-around {
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.u-text-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.u-text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.u-text-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.u-flex-col {
|
||||
/* #ifndef APP-NVUE */
|
||||
display: flex!important;
|
||||
/* #endif */
|
||||
flex-direction: column!important;
|
||||
}
|
||||
|
||||
// 定义flex等分
|
||||
@for $i from 0 through 12 {
|
||||
.u-flex-#{$i} {
|
||||
flex: $i;
|
||||
}
|
||||
}
|
||||
|
||||
// 定义字体(px)单位,小于20都为px单位字体
|
||||
@for $i from 9 to 20 {
|
||||
.u-font-#{$i} {
|
||||
font-size: $i + px;
|
||||
}
|
||||
}
|
||||
|
||||
// 定义字体(rpx)单位,大于或等于20的都为rpx单位字体
|
||||
@for $i from 20 through 40 {
|
||||
.u-font-#{$i} {
|
||||
font-size: $i + rpx;
|
||||
}
|
||||
}
|
||||
|
||||
// 定义内外边距,历遍1-80
|
||||
@for $i from 0 through 80 {
|
||||
// 只要双数和能被5除尽的数
|
||||
@if $i % 2 == 0 or $i % 5 == 0 {
|
||||
// 得出:u-margin-30或者u-m-30
|
||||
.u-margin-#{$i}, .u-m-#{$i} {
|
||||
margin: $i + rpx!important;
|
||||
}
|
||||
|
||||
// 得出:u-padding-30或者u-p-30
|
||||
.u-padding-#{$i}, .u-p-#{$i} {
|
||||
padding: $i + rpx!important;
|
||||
}
|
||||
|
||||
@each $short, $long in l left, t top, r right, b bottom {
|
||||
// 缩写版,结果如: u-m-l-30
|
||||
// 定义外边距
|
||||
.u-m-#{$short}-#{$i} {
|
||||
margin-#{$long}: $i + rpx!important;
|
||||
}
|
||||
|
||||
// 定义内边距
|
||||
.u-p-#{$short}-#{$i} {
|
||||
padding-#{$long}: $i + rpx!important;
|
||||
}
|
||||
|
||||
// 完整版,结果如:u-margin-left-30
|
||||
// 定义外边距
|
||||
.u-margin-#{$long}-#{$i} {
|
||||
margin-#{$long}: $i + rpx!important;
|
||||
}
|
||||
|
||||
// 定义内边距
|
||||
.u-padding-#{$long}-#{$i} {
|
||||
padding-#{$long}: $i + rpx!important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 重置nvue的默认关于flex的样式
|
||||
.u-reset-nvue {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* start--文本行数限制--start */
|
||||
.u-line-1 {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.u-line-2 {
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
|
||||
.u-line-3 {
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
|
||||
.u-line-4 {
|
||||
-webkit-line-clamp: 4;
|
||||
}
|
||||
|
||||
.u-line-5 {
|
||||
-webkit-line-clamp: 5;
|
||||
}
|
||||
|
||||
.u-line-2, .u-line-3, .u-line-4, .u-line-5 {
|
||||
overflow: hidden;
|
||||
word-break: break-all;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box; // 弹性伸缩盒
|
||||
-webkit-box-orient: vertical; // 设置伸缩盒子元素排列方式
|
||||
}
|
||||
|
||||
/* end--文本行数限制--end */
|
||||
|
||||
|
||||
/* start--不同颜色文字--start */
|
||||
.color-333{
|
||||
color: #333;
|
||||
}
|
||||
.color-666{
|
||||
color: #666;
|
||||
}
|
||||
.color-999{
|
||||
color: #999;
|
||||
}
|
||||
.color-red{
|
||||
color: $my-red-color;
|
||||
}
|
||||
.color-main{
|
||||
color:$my-main-color
|
||||
}
|
||||
|
||||
/* end--不同颜色文字--end */
|
||||
|
||||
|
||||
.tranistion{
|
||||
transition: all .3s ease-in-out;
|
||||
}
|
||||
.tranistion-1{
|
||||
transition: all .1s ease-in-out;
|
||||
}
|
||||
.tranistion-2{
|
||||
transition: all .2s ease-in-out;
|
||||
}
|
||||
.font-bold{
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
|
||||
/* start--不同颜色背景--start */
|
||||
.my-bg-main{
|
||||
background-color:$my-main-color
|
||||
}
|
||||
|
||||
/* end--不同颜色背景--end */
|
||||
|
||||
.safe-page{
|
||||
padding-bottom: 60rpx!important;
|
||||
}
|
||||
::v-deep .uni-switch-input.uni-switch-input-checked{
|
||||
border-color: $my-main-color;
|
||||
background-color: $my-main-color;
|
||||
}
|
||||
.btn-circle{
|
||||
border-radius: 200px;
|
||||
}
|
||||
.min-page{
|
||||
/* #ifdef H5 */
|
||||
min-height: calc(100vh - 44px);
|
||||
/* #endif */
|
||||
/* #ifndef H5 */
|
||||
min-height: 100vh;
|
||||
/* #endif */
|
||||
}
|
||||
.w-full{
|
||||
width: 100%;
|
||||
}
|
||||
.gap-20{
|
||||
gap: 20rpx;
|
||||
}
|
||||
.color-000{
|
||||
color: #000;
|
||||
}
|
||||
.color-fff{
|
||||
color: #fff;
|
||||
}
|
||||
.bg-fff{
|
||||
background-color: #fff;
|
||||
}
|
||||
.bg-gray{
|
||||
background-color: #F9F9F9;
|
||||
}
|
||||
.overflow-hide{
|
||||
/* #ifdef H5 */
|
||||
height: calc(100vh - 44px);
|
||||
/* #endif */
|
||||
/* #ifndef H5 */
|
||||
height: 100vh;
|
||||
/* #endif */
|
||||
overflow: hidden;
|
||||
}
|
||||
.no-wrap{
|
||||
white-space: nowrap;
|
||||
}
|
||||
.border-r-12{
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
.border-r-18{
|
||||
border-radius: 18rpx;
|
||||
}
|
||||
.border-top{
|
||||
border-top: 1px solid #E5E5E5;
|
||||
}
|
||||
.border-bottom{
|
||||
border-bottom: 1px solid #E5E5E5;
|
||||
}
|
||||
.scale7{
|
||||
transform: scale(0.7);
|
||||
}
|
||||
.page-gray {
|
||||
min-height: calc(100vh);
|
||||
/* #ifdef H5 */
|
||||
min-height: calc(100vh - var(--window-top));
|
||||
/* #endif */
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: #F9F9F9;
|
||||
}
|
||||
.box-shadow{
|
||||
box-shadow: 0 0 5px #eee;
|
||||
}
|
||||
.safe-bottom{
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
/* #ifdef H5 */
|
||||
padding-bottom: 28rpx;
|
||||
/* #endif */
|
||||
}
|
||||
.position-all{
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
.fixed-top{
|
||||
position: fixed;
|
||||
/* #ifdef H5 */
|
||||
top: 44px;
|
||||
/* #endif */
|
||||
/* #ifndef H5 */
|
||||
top: 0;
|
||||
/* #endif */
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
.lh30 {
|
||||
line-height: 30px;
|
||||
}
|
||||
.default-box-padding{
|
||||
padding: 32rpx 24rpx;
|
||||
}
|
||||
.icon-arrow-down-fill {
|
||||
width: 16rpx;
|
||||
height: 10rpx;
|
||||
}
|
||||
.zIndex-999{
|
||||
z-index: 999;
|
||||
}
|
||||
.icon-default-size{
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
}
|
||||
::v-deep.uni-easyinput__placeholder-class{
|
||||
font-size: 28rpx!important;
|
||||
}
|
||||
.filter-gray{
|
||||
filter: grayscale(1);
|
||||
}
|
||||
// .u-font-20{
|
||||
// font-size: 10px;
|
||||
// }
|
||||
// .u-font-24{
|
||||
// font-size: 12px;
|
||||
// }
|
||||
// .u-font-28{
|
||||
// font-size: 14px;
|
||||
// }
|
||||
// .u-font-32{
|
||||
// font-size: 16px;
|
||||
// }
|
||||
.line-th{
|
||||
text-decoration: line-through;
|
||||
}
|
||||
//覆盖u-view-plus 颜色
|
||||
.u-primary-light {
|
||||
color: $my-main-color;
|
||||
}
|
||||
::v-deep .u-border{
|
||||
border-width: 1px!important;
|
||||
}
|
||||
|
||||
::v-deep .u-m-t-16 .u-textarea{
|
||||
border-width: 1px!important;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<template>
|
||||
<view class="u-flex u-row-center ">
|
||||
<view class="color-999 my-empty u-relative">{{text}}</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default{
|
||||
props:{
|
||||
text:{
|
||||
type:String,
|
||||
default:'空空如也~'
|
||||
}
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.my-empty{
|
||||
&:before,&::after{
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
border-bottom: 1px solid #999;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
&:before{
|
||||
left: -80rpx;
|
||||
width: 60rpx;
|
||||
}
|
||||
&::after{
|
||||
width: 60rpx;
|
||||
right: -80rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,458 @@
|
|||
<template>
|
||||
<button @click="navThanks" v-if="show">
|
||||
<view class="dong">
|
||||
<view class="monster">
|
||||
<view class="monster__face">
|
||||
<view class="monster__eye avatar-eye avatar-eye--green eye--left">
|
||||
<view class="avatar-eye-pupil pupil--green"><span class="avatar-eye-pupil-blackThing"><span
|
||||
class="avatar-eye-pupil-lightReflection"></span></span></view>
|
||||
</view>
|
||||
<view class="monster__eye avatar-eye avatar-eye--violet eye--right">
|
||||
<view class="avatar-eye-pupil pupil--pink"><span class="avatar-eye-pupil-blackThing"><span
|
||||
class="avatar-eye-pupil-lightReflection"></span></span></view>
|
||||
</view>
|
||||
<view class="monster__noses">
|
||||
<view class="monster__nose"></view>
|
||||
<view class="monster__nose"></view>
|
||||
</view>
|
||||
<view class="monster__mouth">
|
||||
<view class="monster__top"></view>
|
||||
<view class="monster__bottom"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</button>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {returnIsShenhe} from '@/utils/api.js'
|
||||
import {isIos} from '@/utils/app.js'
|
||||
export default {
|
||||
name: "other-xuanu",
|
||||
data() {
|
||||
return {
|
||||
show:false
|
||||
};
|
||||
},
|
||||
methods:{
|
||||
navThanks(){
|
||||
uni.navigateTo({
|
||||
url:'/other/index/index'
|
||||
})
|
||||
},
|
||||
async init(){
|
||||
const isShehe=await returnIsShenhe()
|
||||
this.show=isShehe
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// #ifdef APP
|
||||
if(isIos()){
|
||||
// this.init()
|
||||
}
|
||||
// #endif
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
/* 大嘴鸟*/
|
||||
.dong {
|
||||
z-index: 9999;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: -80px;
|
||||
transform: scale(0.24);
|
||||
-webkit-transform: scale(0.24);
|
||||
-moz-transform: scale(0.24);
|
||||
|
||||
}
|
||||
|
||||
.monster {
|
||||
transform: rotate(-50deg);
|
||||
-ms-transform: rotate(-50deg);
|
||||
/* IE 9 */
|
||||
-moz-transform: rotate(-50deg);
|
||||
/* Firefox */
|
||||
-webkit-transform: rotate(-50deg);
|
||||
/* Safari 和 Chrome */
|
||||
-o-transform: rotate(-50deg);
|
||||
/* Opera */
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
width: 170px;
|
||||
height: 400px;
|
||||
border-top-left-radius: 200px;
|
||||
border-top-right-radius: 200px;
|
||||
background-color: rgb(255, 117, 129);
|
||||
box-shadow: 20px 20px 60px rgba(255, 117, 129,.7);
|
||||
}
|
||||
|
||||
.monster__face {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: 14%;
|
||||
width: 75%;
|
||||
height: 160px;
|
||||
}
|
||||
|
||||
.monster__noses {
|
||||
top: 50%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 28%;
|
||||
height: auto;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.monster__nose {
|
||||
width: 8px;
|
||||
height: 12px;
|
||||
border-radius: 20px;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 4px 8px 5px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.monster__mouth {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 0%;
|
||||
overflow: hidden;
|
||||
border: 25px solid #FFC333;
|
||||
border-radius: 100px;
|
||||
background-color: #810332;
|
||||
animation: mouth 1.75s infinite;
|
||||
box-shadow: 4px 8px 5px rgba(0, 0, 0, 0.2);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.monster__mouth::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 150px;
|
||||
height: 80px;
|
||||
border-radius: 100px;
|
||||
background-color: #400018;
|
||||
}
|
||||
|
||||
.monster__mouth::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -80px;
|
||||
width: 160px;
|
||||
height: 80px;
|
||||
border-top-left-radius: 50%;
|
||||
border-top-right-radius: 50%;
|
||||
background-color: #DC1B50;
|
||||
animation: tongue 1.75s infinite;
|
||||
}
|
||||
|
||||
.monster__top {
|
||||
position: absolute;
|
||||
top: -30px;
|
||||
width: 170px;
|
||||
height: 30px;
|
||||
border-bottom-left-radius: 10px;
|
||||
border-bottom-right-radius: 10px;
|
||||
background-color: #ffffff;
|
||||
z-index: 100;
|
||||
animation: t 1.75s infinite;
|
||||
}
|
||||
|
||||
.monster__bottom {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100px;
|
||||
height: 30px;
|
||||
border-top-left-radius: 10px;
|
||||
border-top-right-radius: 10px;
|
||||
background-color: #ffffff;
|
||||
z-index: 100;
|
||||
animation: b 1.75s infinite;
|
||||
}
|
||||
|
||||
|
||||
.avatar-eye {
|
||||
position: absolute;
|
||||
top: -10%;
|
||||
width: 65px;
|
||||
height: 65px;
|
||||
background: linear-gradient(105deg, white, #cb87f4);
|
||||
border-radius: 100%;
|
||||
box-shadow: 4px 8px 5px rgba(0, 0, 0, 0.2);
|
||||
margin: 3px;
|
||||
-webkit-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
|
||||
.avatar-eye--green {
|
||||
background: linear-gradient(to bottom, #fdfdfd, #c3efea);
|
||||
}
|
||||
|
||||
.avatar-eye--violet {
|
||||
background: linear-gradient(to bottom, #fdfdfd, #e6d6f6);
|
||||
}
|
||||
|
||||
|
||||
.eye--left {
|
||||
left: 10%;
|
||||
}
|
||||
|
||||
.eye--right {
|
||||
left: 85%;
|
||||
}
|
||||
|
||||
.eye--center {
|
||||
left: 45%;
|
||||
top: 10%;
|
||||
}
|
||||
|
||||
.avatar-eye-pupil {
|
||||
position: absolute;
|
||||
width: 55%;
|
||||
height: 55%;
|
||||
left: 50%;
|
||||
top: 25%;
|
||||
-webkit-transform: translate(-50%);
|
||||
transform: translate(-50%);
|
||||
z-index: 100;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
|
||||
.pupil--green {
|
||||
background: linear-gradient(135deg, rgba(188, 248, 177, 0.7), #2fa38c 75%);
|
||||
}
|
||||
|
||||
.pupil--pink {
|
||||
background: linear-gradient(135deg, #f1a183, #8535cd);
|
||||
}
|
||||
|
||||
|
||||
.avatar-eye-pupil-blackThing {
|
||||
position: absolute;
|
||||
width: 55%;
|
||||
height: 55%;
|
||||
left: 50%;
|
||||
top: 25%;
|
||||
background: #2c2f32;
|
||||
-webkit-transform: translate(-50%);
|
||||
transform: translate(-50%);
|
||||
border-radius: 100%;
|
||||
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.avatar-eye-pupil-lightReflection {
|
||||
position: absolute;
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
left: 25%;
|
||||
top: 10%;
|
||||
background: #ebebeb;
|
||||
-webkit-transform: translate(-50%);
|
||||
transform: translate(-50%);
|
||||
border-radius: 100%;
|
||||
box-shadow: 10px 10px 10px rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
/*大嘴动起来*/
|
||||
@keyframes t {
|
||||
|
||||
0%,
|
||||
10%,
|
||||
80%,
|
||||
100% {
|
||||
top: -30px;
|
||||
}
|
||||
|
||||
20% {
|
||||
top: 0px;
|
||||
}
|
||||
|
||||
30% {
|
||||
top: -20px;
|
||||
}
|
||||
|
||||
40% {
|
||||
top: -0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
top: -25px;
|
||||
}
|
||||
|
||||
70% {
|
||||
top: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes b {
|
||||
|
||||
0%,
|
||||
10%,
|
||||
80%,
|
||||
100% {
|
||||
bottom: -30px;
|
||||
}
|
||||
|
||||
20% {
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
30% {
|
||||
bottom: -20px;
|
||||
}
|
||||
|
||||
40% {
|
||||
bottom: -0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
bottom: -25px;
|
||||
}
|
||||
|
||||
70% {
|
||||
bottom: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes mouth {
|
||||
|
||||
0%,
|
||||
10%,
|
||||
100% {
|
||||
width: 100%;
|
||||
height: 0%;
|
||||
}
|
||||
|
||||
15% {
|
||||
width: 90%;
|
||||
height: 30%;
|
||||
}
|
||||
|
||||
20% {
|
||||
width: 50%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
25% {
|
||||
width: 70%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
30% {
|
||||
width: 80%;
|
||||
height: 60%;
|
||||
}
|
||||
|
||||
35% {
|
||||
width: 60%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
40% {
|
||||
width: 55%;
|
||||
height: 75%;
|
||||
}
|
||||
|
||||
45% {
|
||||
width: 50%;
|
||||
height: 90%;
|
||||
}
|
||||
|
||||
50% {
|
||||
width: 40%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
55% {
|
||||
width: 70%;
|
||||
height: 95%;
|
||||
}
|
||||
|
||||
60% {
|
||||
width: 40%;
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
65% {
|
||||
width: 100%;
|
||||
height: 60%;
|
||||
}
|
||||
|
||||
70% {
|
||||
width: 100%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
75% {
|
||||
width: 90%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
80% {
|
||||
width: 50%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
85% {
|
||||
width: 90%;
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
85% {
|
||||
width: 40%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
90% {
|
||||
width: 90%;
|
||||
height: 30%;
|
||||
}
|
||||
|
||||
95% {
|
||||
width: 100%;
|
||||
height: 10%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tongue {
|
||||
|
||||
0%,
|
||||
20%,
|
||||
100% {
|
||||
bottom: -80px;
|
||||
}
|
||||
|
||||
30%,
|
||||
90% {
|
||||
bottom: -40px;
|
||||
}
|
||||
|
||||
40% {
|
||||
bottom: -45px;
|
||||
}
|
||||
|
||||
50% {
|
||||
bottom: -50px;
|
||||
}
|
||||
|
||||
70% {
|
||||
bottom: -80px;
|
||||
}
|
||||
|
||||
90% {
|
||||
bottom: -40px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -3,45 +3,45 @@
|
|||
<u-popup v-model="shows" @close="close" :mask-close-able="false" :safe-area-inset-bottom="true" mode="bottom"
|
||||
border-radius="32" closeable>
|
||||
<view class="title">购买后继续观看</view>
|
||||
<view class="money">
|
||||
<!-- <view class="money">
|
||||
<view class="money-l flex align-center">
|
||||
账号余额:
|
||||
<text>{{moneyNum}}金豆</text>
|
||||
<text>{{moneyNum}}金币</text>
|
||||
<view class="money-l-go" @click="goWallet('/me/wallet/wallet')">
|
||||
查看明细
|
||||
</view>
|
||||
</view>
|
||||
<view class="money-r">
|
||||
解锁价格:
|
||||
<text>{{payPrice}}金豆</text>
|
||||
<text>{{payPrice}}金币</text>
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view scroll-y="true" class="payLists">
|
||||
</view> -->
|
||||
<!-- <scroll-view scroll-y="true" class="payLists">
|
||||
<view class="payList">
|
||||
<view class="payList-item" @click="current = index" :class="current == index?'activePrice':''"
|
||||
v-for="(item,index) in wallet" :key="index">
|
||||
v-for="(item,index) in wallet" :key="index"> -->
|
||||
<!-- #ifdef MP-TOUTIAO -->
|
||||
<view class="payList-item-price">
|
||||
<!-- <view class="payList-item-price">
|
||||
{{item.payDiamond}}钻石
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef MP-TOUTIAO -->
|
||||
<view class="payList-item-price">
|
||||
<!-- <view class="payList-item-price">
|
||||
¥{{item.price}}
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- #endif -->
|
||||
<view class="payList-item-dou">
|
||||
{{item.money}}金豆
|
||||
<!-- <view class="payList-item-dou">
|
||||
{{item.money}}金币
|
||||
</view>
|
||||
<view class="payList-item-duo" v-if="item.giveMoney>0">
|
||||
多送{{item.giveMoney}}金豆
|
||||
多送{{item.giveMoney}}金币
|
||||
</view>
|
||||
<view class="payList-item-hui" v-if="item.remarks">
|
||||
{{item.remarks}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</scroll-view> -->
|
||||
<!-- 支付类型 -->
|
||||
<view class="payType">
|
||||
<view class="payType-item" @tap='selectWay(item)' v-for="(item,index) in openLists" :key="index">
|
||||
|
|
@ -132,7 +132,11 @@
|
|||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
//需要支付的金豆
|
||||
orderId: {
|
||||
type: Number,
|
||||
default: null
|
||||
},
|
||||
//需要支付的金币
|
||||
payPrice: {
|
||||
type: Number,
|
||||
default: 0
|
||||
|
|
@ -176,55 +180,61 @@
|
|||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
if (plus.os.name.toLowerCase() === 'android') {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '微信',
|
||||
id: 2
|
||||
}, {
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
}];
|
||||
this.openWay = 2;
|
||||
let syPaySel = this.$queue.getData('syPaySel')
|
||||
if (syPaySel === '是') {
|
||||
let openListsItem = {
|
||||
image: '/static/images/pay/shouyi.png',
|
||||
text: '收益余额',
|
||||
id: 4
|
||||
};
|
||||
this.openLists.push(openListsItem)
|
||||
}
|
||||
} else {
|
||||
let checkIosPay = this.$queue.getData('checkIosPay');
|
||||
if (checkIosPay === '是') {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '苹果',
|
||||
id: 3
|
||||
}];
|
||||
this.openWay = 3;
|
||||
} else {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '微信',
|
||||
id: 2
|
||||
}, {
|
||||
this.openLists = [
|
||||
// {
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '微信',
|
||||
// id: 2
|
||||
// },
|
||||
{
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
}];
|
||||
this.openWay = 2;
|
||||
let syPaySel = this.$queue.getData('syPaySel')
|
||||
if (syPaySel === '是') {
|
||||
let openListsItem = {
|
||||
image: '/static/images/pay/shouyi.png',
|
||||
text: '收益余额',
|
||||
id: 4
|
||||
};
|
||||
this.openLists.push(openListsItem)
|
||||
}
|
||||
}
|
||||
];
|
||||
this.openWay = 1;
|
||||
let syPaySel = this.$queue.getData('syPaySel')
|
||||
// if (syPaySel === '是') {
|
||||
// let openListsItem = {
|
||||
// image: '/static/images/pay/shouyi.png',
|
||||
// text: '收益余额',
|
||||
// id: 4
|
||||
// };
|
||||
// this.openLists.push(openListsItem)
|
||||
// }
|
||||
} else {
|
||||
let checkIosPay = this.$queue.getData('checkIosPay');
|
||||
// if (checkIosPay === '是') {
|
||||
// this.openLists = [{
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '苹果',
|
||||
// id: 3
|
||||
// }];
|
||||
// this.openWay = 3;
|
||||
// } else {
|
||||
this.openLists = [
|
||||
// {
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '微信',
|
||||
// id: 2
|
||||
// },
|
||||
{
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
}
|
||||
];
|
||||
this.openWay = 1;
|
||||
let syPaySel = this.$queue.getData('syPaySel')
|
||||
// if (syPaySel === '是') {
|
||||
// let openListsItem = {
|
||||
// image: '/static/images/pay/shouyi.png',
|
||||
// text: '收益余额',
|
||||
// id: 4
|
||||
// };
|
||||
// this.openLists.push(openListsItem)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// #endif
|
||||
|
|
@ -240,31 +250,31 @@
|
|||
|
||||
// #ifdef H5
|
||||
let ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger') !== -1) {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '微信',
|
||||
id: 2
|
||||
}];
|
||||
this.openWay = 2;
|
||||
} else {
|
||||
// if (ua.indexOf('micromessenger') !== -1) {
|
||||
// this.openLists = [{
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '微信',
|
||||
// id: 2
|
||||
// }];
|
||||
// this.openWay = 2;
|
||||
// } else {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
}];
|
||||
this.openWay = 1;
|
||||
}
|
||||
// }
|
||||
|
||||
let syPaySel = this.$queue.getData('syPaySel')
|
||||
if (syPaySel === '是') {
|
||||
let openListsItem = {
|
||||
image: '/static/images/pay/shouyi.png',
|
||||
text: '收益余额',
|
||||
id: 4
|
||||
};
|
||||
this.openLists.push(openListsItem)
|
||||
}
|
||||
// if (syPaySel === '是') {
|
||||
// let openListsItem = {
|
||||
// image: '/static/images/pay/shouyi.png',
|
||||
// text: '收益余额',
|
||||
// id: 4
|
||||
// };
|
||||
// this.openLists.push(openListsItem)
|
||||
// }
|
||||
// #endif
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -562,28 +572,36 @@
|
|||
// #endif
|
||||
|
||||
} else if (this.openWay == 1) {
|
||||
console.log(this.orderId)
|
||||
let paytype='h5'
|
||||
// #ifdef APP
|
||||
paytype='app'
|
||||
// #endif
|
||||
console.log('paypop payType='+paytype);
|
||||
// APP支付宝支付
|
||||
// #ifdef APP
|
||||
this.$Request.postT("/app/aliPay/payMoney", {
|
||||
classify: 1,
|
||||
payClassifyId: this.wallet[this.current].payClassifyId,
|
||||
}).then(ret => {
|
||||
this.$Request.getT("/app/wuyou/payOrder/"+ this.orderId+'?payType='+paytype,{}).then(ret => {
|
||||
console.log(ret)
|
||||
this.isCheckPay(ret.code, 'alipay', ret.data);
|
||||
// this.isCheckPay(ret.code, 'alipay', ret.data);
|
||||
that.$emit('paySuccess', ret.data)
|
||||
});
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
let data = {
|
||||
classify: 2,
|
||||
payClassifyId: this.wallet[this.current].payClassifyId,
|
||||
orderId: this.orderId,
|
||||
}
|
||||
this.$Request.postT('/app/aliPay/payMoney', data).then(
|
||||
this.$Request.getT("/app/wuyou/payOrder/"+ this.orderId+'?payType='+paytype, {}).then(
|
||||
res => {
|
||||
if (res.code === 0) {
|
||||
const div = document.createElement('div')
|
||||
div.innerHTML = res.data //此处form就是后台返回接收到的数据
|
||||
document.body.appendChild(div)
|
||||
document.forms[0].submit()
|
||||
console.log(res)
|
||||
that.$emit('paySuccess', {
|
||||
ordersId: this.orderId,
|
||||
h5Url: res.data.h5Url
|
||||
})
|
||||
// const div = document.createElement('div')
|
||||
// div.innerHTML = res.data //此处form就是后台返回接收到的数据
|
||||
// document.body.appendChild(div)
|
||||
// document.forms[0].submit()
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
|
|
@ -601,7 +619,7 @@
|
|||
this.$Request.postT("/app/ios/insertPayMoneyOrders", data).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.iosPayId = res.data.orderId;
|
||||
this.iphonepay();
|
||||
// this.iphonepay();
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,720 @@
|
|||
<template>
|
||||
<view>
|
||||
<u-popup v-model="show">
|
||||
<view class="almost-lottery">
|
||||
<!-- head -->
|
||||
<view class="almost-lottery__head">
|
||||
<view class="btn-group u-flex u-row-between">
|
||||
<view :class="['action', isApple && 'action-shadow']" @click="toRed">
|
||||
<text class="pack"></text>
|
||||
<text class="content">红包<text class="num">{{ totalMoney }}</text></text>
|
||||
</view>
|
||||
<view :class="['action', isApple && 'action-shadow']" @click="toGift">
|
||||
<text class="gift"></text>
|
||||
<text class="content">我的奖品</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="tip"><text class="tip-content">每次抽奖消耗 {{ goldNum }} 金币,不限次数</text></view> -->
|
||||
</view>
|
||||
<!-- action -->
|
||||
|
||||
<!-- <view class="almost-lottery__action-dev" @tap="handleInitCanvas" v-if="isDev">
|
||||
<text class="text">重新生成画板-开发模式使用</text>
|
||||
</view>
|
||||
<view class="almost-lottery__action-dev" @tap="handleCheckPopup">
|
||||
<text class="text">查看 uni-popup 用例</text>
|
||||
</view> -->
|
||||
|
||||
<!-- lottery -->
|
||||
<view class="almost-lottery__wheel">
|
||||
<almost-lottery :lottery-size="lotteryConfig.lotterySize" :action-size="lotteryConfig.actionSize"
|
||||
:ring-count="2" :duration="1" :self-rotaty="false" :img-circled="true" :canvasCached="true"
|
||||
:prize-list="prizeList" :prize-index="prizeIndex" :lotteryBg="lotteryBg" :actionBg="actionBg"
|
||||
@reset-index="prizeIndex = -1" @draw-before="handleDrawBefore" @draw-start="handleDrawStart"
|
||||
@draw-end="handleDrawEnd" @finish="handleDrawFinish" v-if="prizeList.length" />
|
||||
<view class="almost-lottery__count">
|
||||
<text class="text">剩余免费抽奖 {{ freeNum }} 次</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- rule -->
|
||||
<view class="almost-lottery__rule">
|
||||
<view class="rule-head">
|
||||
<view class="line"></view>
|
||||
<text class="title">活动规则</text>
|
||||
<view class="line"></view>
|
||||
</view>
|
||||
<view class="rule-body">
|
||||
<view class="item">
|
||||
<view class="number">1</view>
|
||||
<view class="text">
|
||||
<text>抽奖细则:</text>
|
||||
<text>每人每天最多拥有{{ freeNumDay }}次抽奖机会</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item item-rule">
|
||||
<view class="number">2</view>
|
||||
<view class="text">
|
||||
<text>奖励说明:</text>
|
||||
<text>a.现金奖:系统会即时转入红包余额,可提现。</text>
|
||||
<!-- <text>b.金币奖:系统会即时转入金币账户,可在平台内使用。</text> -->
|
||||
<text>b.实物奖:中奖后需联系客服领取。</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <template >
|
||||
<view class="item">
|
||||
<view class="number">3</view>
|
||||
<view class="text">本次活动由XXXXXXX发起。</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="number">4</view>
|
||||
<view class="text">本活动仅限17岁以上用户参加。</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="number">5</view>
|
||||
<view class="text">本活动最终解释权归XXXXXXX所有。</view>
|
||||
</view>
|
||||
</template> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AlmostLottery from '@/uni_modules/almost-lottery/components/almost-lottery/almost-lottery.vue'
|
||||
import {
|
||||
clearCacheFile,
|
||||
clearStore
|
||||
} from '@/uni_modules/almost-lottery/utils/almost-utils.js'
|
||||
export default {
|
||||
name: 'Home',
|
||||
components: {
|
||||
AlmostLottery
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show:true,
|
||||
//红包余额
|
||||
totalMoney: 0,
|
||||
//抽奖结果
|
||||
result: '',
|
||||
// 开启调试模式
|
||||
isDev: true,
|
||||
option: {},
|
||||
// 以下是转盘配置相关数据
|
||||
lotteryConfig: {
|
||||
// 抽奖转盘的整体尺寸,单位rpx
|
||||
lotterySize: 600,
|
||||
// 抽奖按钮的尺寸,单位rpx
|
||||
actionSize: 200
|
||||
},
|
||||
|
||||
// 以下是转盘 UI 配置
|
||||
// 转盘外环图,如有需要,请参考替换为自己的设计稿
|
||||
lotteryBg: require('@/uni_modules/almost-lottery/static/almost-lottery/almost-lottery__bg2x.png'),
|
||||
// 抽奖按钮图
|
||||
actionBg: require('@/uni_modules/almost-lottery/static/almost-lottery/almost-lottery__action2x.png'),
|
||||
|
||||
// 以下是奖品配置数据
|
||||
// 奖品数据
|
||||
prizeList: [],
|
||||
// 奖品是否设有库存
|
||||
onStock: true,
|
||||
// 中奖下标
|
||||
prizeIndex: -1,
|
||||
|
||||
// 是否正在抽奖中,避免重复触发
|
||||
prizeing: false,
|
||||
|
||||
// 以下为中奖概率有关数据
|
||||
// 是否由前端控制概率,默认不开启,强烈建议由后端控制
|
||||
onFrontend: false,
|
||||
// 权重随机数的最大值
|
||||
prizeWeightMax: 0,
|
||||
// 权重数组
|
||||
prizeWeightArr: [],
|
||||
|
||||
// 以下为业务需求有关示例数据
|
||||
// 金币余额
|
||||
goldCoin: 20,
|
||||
// 当日免费抽奖次数余额
|
||||
freeNum: 1,
|
||||
// 每次消耗的金币数
|
||||
goldNum: 20,
|
||||
// 每天免费抽奖次数
|
||||
freeNumDay: 10
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isApple() {
|
||||
return uni.getSystemInfoSync().platform === 'ios'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
toRed() {
|
||||
uni.navigateTo({
|
||||
url: '/me/balance/index'
|
||||
})
|
||||
|
||||
},
|
||||
toGift() {
|
||||
console.log('1');
|
||||
uni.navigateTo({
|
||||
url: '/me/gift/gift'
|
||||
})
|
||||
},
|
||||
// 重新生成
|
||||
handleInitCanvas() {
|
||||
clearCacheFile()
|
||||
clearStore()
|
||||
|
||||
this.prizeList = []
|
||||
this.getPrizeList()
|
||||
},
|
||||
// 通过 popup 打开
|
||||
handleCheckPopup() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/popup/popup'
|
||||
})
|
||||
},
|
||||
// 获取奖品列表
|
||||
async getPrizeList() {
|
||||
uni.showLoading({
|
||||
title: '奖品准备中...'
|
||||
})
|
||||
|
||||
// 等待接口返回的数据进一步处理
|
||||
let res = await this.requestApiGetPrizeList()
|
||||
console.log('获取奖品列表', res)
|
||||
|
||||
if (res.ok) {
|
||||
let data = res.data
|
||||
if (data.length) {
|
||||
this.prizeList = data
|
||||
console.log('已获取到奖品列表数据,开始绘制抽奖转盘')
|
||||
|
||||
// 计算开始绘制的时间
|
||||
if (console.time) {
|
||||
console.time('绘制转盘用时')
|
||||
}
|
||||
|
||||
// 如果开启了前端控制概率
|
||||
// 得出权重的最大值并生成权重数组
|
||||
if (this.onFrontend) {
|
||||
// 生成权重数组并排序取得最大值
|
||||
this.prizeWeightArr = this.prizeList.map(item => item.prizeWeight)
|
||||
let prizeWeightArrSort = [...this.prizeWeightArr]
|
||||
prizeWeightArrSort.sort((a, b) => b - a)
|
||||
|
||||
// 开放自定义权重最大值,没有自定义则取权重数组中的最大值
|
||||
this.prizeWeightMax = this.prizeWeightMax > 0 ? this.prizeWeightMax : prizeWeightArrSort[0]
|
||||
}
|
||||
}
|
||||
} else {
|
||||
uni.hideLoading()
|
||||
uni.showToast({
|
||||
title: '获取奖品失败',
|
||||
mask: true,
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
},
|
||||
// 模拟请求 获取奖品列表 接口,
|
||||
// 注意这里返回的是一个 Promise
|
||||
// 大哥,这里只是模拟,别告诉我你不会对接自己的接口
|
||||
async requestApiGetPrizeList() {
|
||||
const res = await this.$Request.getT('/app/discSpinning/selectDiscSpinning')
|
||||
if (res.code == 0) {
|
||||
return {
|
||||
ok: true,
|
||||
data: res.data.records.map(v => {
|
||||
return {
|
||||
...v,
|
||||
prizeId: v.id,
|
||||
prizeName: v.name,
|
||||
prizeStock: 10,
|
||||
prizeWeight: 200,
|
||||
prizeImage: v.url,
|
||||
// prizeImage: require('@/static/git.png')
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
return
|
||||
return new Promise((resolve, reject) => {
|
||||
let requestTimer = setTimeout(() => {
|
||||
clearTimeout(requestTimer)
|
||||
requestTimer = null
|
||||
|
||||
// prizeStock 奖品库存
|
||||
// prizeWeight 中奖概率,数值越大中奖概率越高,权重一样时随机中奖
|
||||
resolve({
|
||||
ok: true,
|
||||
data: [{
|
||||
prizeId: 1,
|
||||
prizeName: '0.1元现金',
|
||||
prizeStock: 10,
|
||||
prizeWeight: 200,
|
||||
prizeImage: require('@/static/git.png')
|
||||
},
|
||||
{
|
||||
prizeId: 2,
|
||||
prizeName: '10元现金',
|
||||
prizeStock: 0,
|
||||
prizeWeight: 50,
|
||||
prizeImage: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/56f085e0-bcfe-11ea-b244-a9f5e5565f30.png'
|
||||
},
|
||||
{
|
||||
prizeId: 3,
|
||||
prizeName: '5元话费',
|
||||
prizeStock: 1,
|
||||
prizeWeight: 80
|
||||
},
|
||||
{
|
||||
prizeId: 4,
|
||||
prizeName: '50元现金',
|
||||
prizeStock: 0,
|
||||
prizeWeight: 10,
|
||||
prizeImage: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAB2klEQVRIia3Wv09TURjG8U+u2kQZcNENh2ok0cnJ0R+L0RB2g/EvwITEwRgnV0Zx0fAHYBh0khBD4sBAmAgDiwQNg4qwmSBDAYf7Fi+n97al9UlObnvO836f3tO355b2GsAYZrCBPRzGdSPmx8J3YtXwDDsB7TR2wl/rNmAYK13C07ES9W11E9s9BjTHdnBKVf8PAcWgehpwCssF0w/5FzqLgw7AA7zDQ/wqzC8H90jjSeFMYW0Yr8PzALfjOh7z1wve2YTzpLlQw2ay+KZ1N7vS24SziVqGexhKzB07pEJXk/dDwTetdZ9HewwZLWFNw2oyudZjQFNrCW8109pqS32GpPX1TOu586fPkLR+IEMjmbzYZ0ha34Atx/fwW58hXxPeFixo7Yg7PQbcKmEtZFgsMb/C4AkDBuUnQKpFuFZI3cZuvP6C+8g6wDP572O95C4Og49/W/YJl/G5YPqO9yV3dh4f8LMCfhjcI93Afix8xAX5SVx2YBY10yagEdxjmiwY7uISXuIFrlSEPG0TMllWcAbzYViXd0rzeXC6ImSiImA+eKU6h7mCeV/eCBMnCJkLzpHSztnFCJ7L//ZkOFv1iRLtRd1IcLpSHVP4jccVnkexPqXkmd7UX15b7tiz29ReAAAAAElFTkSuQmCC'
|
||||
},
|
||||
{
|
||||
prizeId: 5,
|
||||
prizeName: '1卷抽纸',
|
||||
prizeStock: 3,
|
||||
prizeWeight: 3000,
|
||||
prizeImage: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABCElEQVRoge3YMa4BURSH8Y8o7UAp0WgkotBZwluAfhqlZSgUGr23ENUUCpppJnTswAIUSCaTiziZJ8d9/193zdzrfMltABF5plb+oLscDoAV0Pn8OC/lwDhL0k35QT3wstcIuM61Cj0IhXiNuAvOFwr5SgrxRiHeKMSbhnHfAVgU1i1gajhnBpwK6wnQtgxkDTlmSTq/L7rLYQ9byG+WpLvCOT8YQ6K5WgrxRiHeKMQbhXijEG8U4o1CvIkmxPrDquwMrI37KlFJSJake2BUxVlW0VytaEKsV6t5+8Ohak3rRmtIH9hav/QvRHO1FOKNQrwJheQfn+I9wflCIeNHLzuQc51PRP6rC1ZeIm1I8cC5AAAAAElFTkSuQmCC'
|
||||
},
|
||||
{
|
||||
prizeId: 6,
|
||||
prizeName: '0.2元现金',
|
||||
prizeStock: 8,
|
||||
prizeWeight: 120
|
||||
},
|
||||
{
|
||||
prizeId: 7,
|
||||
prizeName: '谢谢参与',
|
||||
prizeStock: 100,
|
||||
prizeWeight: 10000
|
||||
},
|
||||
{
|
||||
prizeId: 8,
|
||||
prizeName: '100金币',
|
||||
prizeStock: 100,
|
||||
prizeWeight: 3000
|
||||
}
|
||||
]
|
||||
})
|
||||
}, 200)
|
||||
})
|
||||
},
|
||||
// 抽奖开始之前
|
||||
async handleDrawBefore(callback) {
|
||||
|
||||
console.log('抽奖开始之前')
|
||||
let flag = false
|
||||
|
||||
// 还有免费数次
|
||||
if (this.freeNum > 0) {
|
||||
this.freeNum--
|
||||
flag = true
|
||||
} else {
|
||||
flag = false
|
||||
uni.showToast({
|
||||
title: '抽奖次数不足',
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
|
||||
callback(flag)
|
||||
},
|
||||
// 本次抽奖开始
|
||||
handleDrawStart() {
|
||||
console.log('触发抽奖按钮')
|
||||
if (this.prizeing) return
|
||||
this.prizeing = true
|
||||
|
||||
this.tryLotteryDraw()
|
||||
},
|
||||
// 尝试发起抽奖
|
||||
tryLotteryDraw() {
|
||||
console.log('旋转开始,获取中奖下标......')
|
||||
// 判断是否由前端控制概率
|
||||
if (this.onFrontend) {
|
||||
this.localGetPrizeIndex()
|
||||
} else {
|
||||
this.remoteGetPrizeIndex()
|
||||
}
|
||||
},
|
||||
// 本地获取中奖下标
|
||||
localGetPrizeIndex() {
|
||||
console.warn('###当前处于前端控制中奖概率,安全起见,强烈建议由后端控制###')
|
||||
// 前端控制概率的情况下,需要拿到最接近随机权重且大于随机权重的值
|
||||
// 后端控制概率的情况下,通常会直接返回 prizeId
|
||||
if (!this.prizeWeightMax || !this.prizeWeightArr.length) {
|
||||
console.warn('###当前已开启前端控制中奖概率,但是奖品数据列表中的 prizeWeight 参数似乎配置不正确###')
|
||||
return
|
||||
}
|
||||
console.log('当前权重最大值为 =>', this.prizeWeightMax)
|
||||
|
||||
// 注意这里使用了 Math.ceil,如果某个权重的值为 0,则始终无法中奖
|
||||
let randomWeight = Math.ceil(Math.random() * this.prizeWeightMax)
|
||||
console.log('本次权重随机数 =>', randomWeight)
|
||||
|
||||
// 生成大于等于随机权重的数组
|
||||
let tempMaxArrs = []
|
||||
this.prizeList.forEach((item) => {
|
||||
if (item.prizeWeight >= randomWeight) {
|
||||
tempMaxArrs.push(item.prizeWeight)
|
||||
}
|
||||
})
|
||||
console.log('tempMaxArrs', tempMaxArrs)
|
||||
|
||||
// 如果大于随机权重的数组有值,先对这个数组排序然后取值
|
||||
// 反之新建一个临时的包含所有权重的已排序数组,然后取值
|
||||
let tempMaxArrsLen = tempMaxArrs.length
|
||||
if (tempMaxArrsLen) {
|
||||
tempMaxArrs.sort((a, b) => a - b)
|
||||
// 取值时,如果存在多个值,分两种情况
|
||||
if (tempMaxArrsLen > 1) {
|
||||
// 检查是否存在重复的值
|
||||
let sameCount = 0
|
||||
for (let i = 0; i < tempMaxArrs.length; i++) {
|
||||
if (tempMaxArrs[i] === tempMaxArrs[0]) {
|
||||
sameCount++
|
||||
}
|
||||
}
|
||||
|
||||
// 值不相等的情况下取最接近的值,也就是第1个值
|
||||
if (sameCount === 1) {
|
||||
this.prizeIndex = this.prizeWeightArr.indexOf(tempMaxArrs[0])
|
||||
} else {
|
||||
// 存在值相等时,随机取值,当然这里你可以自己决定是否随机取值
|
||||
let sameWeight = tempMaxArrs[0]
|
||||
let sameWeightArr = []
|
||||
let sameWeightItem = {}
|
||||
this.prizeWeightArr.forEach((item, index) => {
|
||||
if (item === sameWeight) {
|
||||
sameWeightArr.push({
|
||||
prizeWeight: item,
|
||||
index
|
||||
})
|
||||
}
|
||||
})
|
||||
console.log('sameWeightArr', sameWeightArr)
|
||||
sameWeightItem = sameWeightArr[Math.floor(Math.random() * sameWeightArr.length)]
|
||||
console.log('sameWeightItem', sameWeightItem)
|
||||
this.prizeIndex = sameWeightItem.index
|
||||
}
|
||||
} else {
|
||||
this.prizeIndex = this.prizeWeightArr.indexOf(tempMaxArrs[0])
|
||||
}
|
||||
}
|
||||
|
||||
console.log('本次抽中奖品 =>', this.prizeList[this.prizeIndex].prizeName)
|
||||
|
||||
// 如果奖品设有库存
|
||||
if (this.onStock) {
|
||||
console.log('本次奖品库存 =>', this.prizeList[this.prizeIndex].prizeStock)
|
||||
}
|
||||
},
|
||||
// 远程请求接口获取中奖下标
|
||||
// 大哥,这里只是模拟,别告诉我你不会对接自己的接口
|
||||
async remoteGetPrizeIndex() {
|
||||
this.result = ''
|
||||
console.warn('###当前处于模拟的请求接口,并返回了中奖信息###')
|
||||
const res = await this.$Request.getT('app/discSpinning/draw', {
|
||||
orderId: this.option.orderId || 2145
|
||||
})
|
||||
console.log(res);
|
||||
if (res.code != 0) {
|
||||
return uni.showToast({
|
||||
title: res.msg
|
||||
})
|
||||
}
|
||||
this.result = res.data
|
||||
|
||||
let list = [...this.prizeList]
|
||||
// 这里随机产生的 prizeId 是模拟后端返回的 prizeId
|
||||
const arr = list.filter(v => v.type == res.data.type)
|
||||
let prizeId = arr[0].prizeId
|
||||
|
||||
// 拿到后端返回的 prizeId 后,开始循环比对得出那个中奖的数据
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
let item = list[i]
|
||||
if (item.prizeId === prizeId) {
|
||||
// 中奖下标
|
||||
this.prizeIndex = i
|
||||
break
|
||||
}
|
||||
}
|
||||
console.log('本次抽中奖品 =>', this.prizeList[this.prizeIndex].prizeName)
|
||||
},
|
||||
// 本次抽奖结束
|
||||
handleDrawEnd() {
|
||||
console.log('旋转结束,执行拿到结果后到逻辑')
|
||||
// 旋转结束后,开始处理拿到结果后的逻辑
|
||||
// const prize = this.prizeList[this.prizeIndex]
|
||||
const prize = this.result
|
||||
let {
|
||||
name
|
||||
} = prize
|
||||
let tipContent = ''
|
||||
|
||||
if (name.type == 1) {
|
||||
tipContent = '很遗憾,没有中奖,请再接再厉!'
|
||||
} else {
|
||||
tipContent = `恭喜您,获得 ${name}${this.result.type==2?(this.result.number+'元'):''} !`
|
||||
}
|
||||
const _this = this;
|
||||
uni.showToast({
|
||||
title: tipContent,
|
||||
icon: 'none'
|
||||
})
|
||||
_this.getRedPack()
|
||||
this.prizeing = false
|
||||
|
||||
},
|
||||
// 抽奖转盘绘制完成
|
||||
handleDrawFinish(res) {
|
||||
console.log('抽奖转盘绘制完成', res)
|
||||
|
||||
if (res.ok) {
|
||||
// 计算结束绘制的时间
|
||||
if (console.timeEnd) {
|
||||
console.timeEnd('绘制转盘用时')
|
||||
}
|
||||
}
|
||||
|
||||
let stoTimer = setTimeout(() => {
|
||||
stoTimer = null
|
||||
|
||||
uni.hideLoading()
|
||||
// uni.showToast({
|
||||
// title: res.msg,
|
||||
// mask: true,
|
||||
// icon: 'none'
|
||||
// })
|
||||
}, 50)
|
||||
},
|
||||
async getRedPack() {
|
||||
const res = await this.$Request.getT('app/moneyDetails/selectUserMoney')
|
||||
if (res.code == 0) {
|
||||
this.totalMoney = res.data.amount
|
||||
}
|
||||
}
|
||||
},
|
||||
onLoad(opt) {
|
||||
this.option = opt
|
||||
this.prizeList = []
|
||||
this.getRedPack()
|
||||
this.getPrizeList()
|
||||
},
|
||||
onUnload() {
|
||||
uni.hideLoading()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.btn-group {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 2;
|
||||
top: 200px;
|
||||
gap: 20rpx;
|
||||
padding: 0 32rpx;
|
||||
}
|
||||
|
||||
.almost-lottery {
|
||||
flex: 1;
|
||||
background-color: #FF893F;
|
||||
}
|
||||
|
||||
.almost-lottery__head {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 640rpx;
|
||||
background: url('~static/images/lottery/top-bg.png') no-repeat center center/cover;
|
||||
|
||||
.action {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
height: 88rpx;
|
||||
line-height: 88rpx;
|
||||
margin: 0 auto;
|
||||
color: #FFFFFF;
|
||||
font-size: 32rpx;
|
||||
background-color: rgba(255, 136, 61, 1);
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
.action-shadow {
|
||||
box-shadow: 0px 14rpx 0px 0px rgba(235, 112, 36, 1);
|
||||
}
|
||||
|
||||
.pack {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
margin-right: 10rpx;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: contain;
|
||||
background-image: url("~static/red-pack.png");
|
||||
}
|
||||
|
||||
.gift {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
margin-right: 10rpx;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: contain;
|
||||
background-image: url("~static/gift.png");
|
||||
}
|
||||
|
||||
.gold {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
margin-right: 10rpx;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: contain;
|
||||
background-image: url("~static/images/lottery/gold.png");
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 2),
|
||||
(min-device-pixel-ratio: 2) {
|
||||
background-image: url("~static/images/lottery/gold@2x.png");
|
||||
}
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 3),
|
||||
(min-device-pixel-ratio: 3) {
|
||||
background-image: url("~static/images/lottery/gold@3x.png");
|
||||
}
|
||||
}
|
||||
|
||||
.num {
|
||||
color: #F9FC31;
|
||||
}
|
||||
|
||||
.tip {
|
||||
position: relative;
|
||||
top: 428rpx;
|
||||
color: #FFFFFF;
|
||||
font-size: 24rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.almost-lottery__wheel {
|
||||
text-align: center;
|
||||
|
||||
.almost-lottery__count {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
padding: 40rpx 0;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: #FFFFFF;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.almost-lottery__rule {
|
||||
padding: 0 28rpx;
|
||||
color: #FFF8CB;
|
||||
|
||||
.rule-head {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
margin: 40rpx 0;
|
||||
|
||||
.line {
|
||||
flex: 1;
|
||||
height: 1px;
|
||||
background-color: #FFF3A5;
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 280rpx;
|
||||
color: #F63857;
|
||||
line-height: 70rpx;
|
||||
text-align: center;
|
||||
margin: 0 20rpx;
|
||||
border-radius: 8rpx;
|
||||
background-image: linear-gradient(0deg, rgba(255, 242, 158, 1), rgba(255, 244, 168, 1));
|
||||
}
|
||||
}
|
||||
|
||||
.rule-body {
|
||||
color: #FFF8CB;
|
||||
font-size: 24rpx;
|
||||
padding: 10rpx 0 40rpx;
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.number {
|
||||
position: relative;
|
||||
top: 4rpx;
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
line-height: 28rpx;
|
||||
text-align: center;
|
||||
color: #F63857;
|
||||
background: #FFF8CB;
|
||||
border-radius: 50%;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.text {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.item-rule .text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.almost-lottery__action-dev {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 400rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 10rpx;
|
||||
text-align: center;
|
||||
background-color: red;
|
||||
margin: 0 auto 40rpx;
|
||||
|
||||
.text {
|
||||
color: #FFFFFF;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.almost-lottery__popup-wrap {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.almost-lottery {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
<template>
|
||||
<view>
|
||||
<u-popup v-model="show" mode="center" @close="close">
|
||||
<view class="bg">
|
||||
<view class="title">恭喜您获得</view>
|
||||
<view class="goods">
|
||||
<template v-if="result&&result.type==3">
|
||||
<view class="u-flex u-col-center u-row-center">
|
||||
<image style="height: 100px;" :src="result.img||result.url" mode="heightFix"></image>
|
||||
</view>
|
||||
<view class="u-flex u-row-center u-m-t-30">
|
||||
<view class="type">{{result.name}}</view>
|
||||
</view>
|
||||
</template>
|
||||
<template v-if="result&&result.type==2">
|
||||
<view class="u-flex color-money u-col-center u-row-center">
|
||||
<view class="money">{{result.number}}</view>
|
||||
<view class="font-bold " style="margin-top: 20rpx;font-size: 36rpx;">元</view>
|
||||
</view>
|
||||
<view class="u-flex u-m-t-24 u-row-center">
|
||||
<view class="type">现金红包</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
</view>
|
||||
|
||||
<view class="u-flex close u-row-center">
|
||||
<u-icon name="close-circle" :size="54" @click="close" color="#fff"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
result: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
open(data) {
|
||||
this.result = data
|
||||
this.show = true
|
||||
},
|
||||
close() {
|
||||
console.log('抽奖弹窗关闭');
|
||||
this.show = false
|
||||
this.$emit('close',key)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .u-mode-center-box {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.color-money {
|
||||
color: #E42F00;
|
||||
}
|
||||
|
||||
.money {
|
||||
font-weight: 700;
|
||||
font-size: 96rpx;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
.bg {
|
||||
width: 628rpx;
|
||||
height: 770rpx;
|
||||
margin-right: 10rpx;
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
background-image: url("~static/images/zhuanpan/gift.png");
|
||||
position: relative;
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 2),
|
||||
(min-device-pixel-ratio: 2) {
|
||||
background-image: url("~static/images/zhuanpan/gift@2x.png");
|
||||
}
|
||||
|
||||
.title {
|
||||
position: absolute;
|
||||
top: 218rpx;
|
||||
text-align: center;
|
||||
left: 0;
|
||||
right: 0;
|
||||
font-weight: 700;
|
||||
font-size: 60rpx;
|
||||
color: #AF6920;
|
||||
letter-spacing: 4rpx;
|
||||
}
|
||||
|
||||
.goods {
|
||||
position: absolute;
|
||||
top: 336rpx;
|
||||
text-align: center;
|
||||
left: 0;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.type {
|
||||
padding: 6rpx 28rpx;
|
||||
border-radius: 100rpx;
|
||||
background: #E25B41;
|
||||
font-size: 28rpx;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.close{
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
.btn-box {
|
||||
position: absolute;
|
||||
top: 574rpx;
|
||||
left: 0;
|
||||
right: 0;
|
||||
|
||||
.btn {
|
||||
padding: 10rpx 60rpx 10rpx 64rpx;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 44rpx;
|
||||
color: #AF6920;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<view class="list-box">
|
||||
<view class="list-box-title flex align-center justify-between">
|
||||
<view class="list-box-title-name">
|
||||
{{title}}
|
||||
{{title||''}}
|
||||
</view>
|
||||
<view @click="clickItem('more')" class="list-box-title-more flex align-center">
|
||||
查看更多
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<!-- <meta name="referrer" content="never"> -->
|
||||
<script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
|
||||
<script language="JavaScript" type="text/JavaScript">
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
vMLdZb1r
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
<template>
|
||||
<view class="demo-title">
|
||||
<view>
|
||||
<view v-if="type === 'first'" class="main_title">
|
||||
<view v-if="leftIcon" class="main_title__icon main_title__icon--left" :class="[`tn-icon-${leftIcon}`]"></view>
|
||||
<view class="main_title__content">{{ title }}</view>
|
||||
<view v-if="rightIcon" class="main_title__icon main_title__icon--right" :class="[`tn-icon-${rightIcon}`]"></view>
|
||||
</view>
|
||||
<view v-if="type === 'second'" class="second_title">
|
||||
<view class="second_title__content">{{ title }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content" :class="[{
|
||||
'content--padding': contentPadding
|
||||
}]">
|
||||
<slot></slot>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'demo-title',
|
||||
options: {
|
||||
// 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现(不会出现shadow节点下再去创建元素)
|
||||
virtualHost: true
|
||||
},
|
||||
props: {
|
||||
// 标题类型
|
||||
type: {
|
||||
type: String,
|
||||
default: 'first'
|
||||
},
|
||||
// 标题
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 左图标
|
||||
leftIcon: {
|
||||
type: String,
|
||||
default: 'star'
|
||||
},
|
||||
// 右图标
|
||||
rightIcon: {
|
||||
type: String,
|
||||
default: 'star'
|
||||
},
|
||||
// 内容容器是否有两边边距
|
||||
contentPadding: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.main_title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 50rpx;
|
||||
font-size: 36rpx;
|
||||
font-weight: bold;
|
||||
|
||||
&__content {
|
||||
padding: 0 18rpx;
|
||||
}
|
||||
|
||||
&__icon {
|
||||
font-size: 34rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.second_title {
|
||||
margin: 24rpx 0;
|
||||
margin-left: 30rpx;
|
||||
|
||||
&__content {
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
margin-top: 30rpx;
|
||||
|
||||
&--padding {
|
||||
margin-left: 30rpx;
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,689 @@
|
|||
<template>
|
||||
<view class="dynamic-demo">
|
||||
|
||||
<!-- 效果预览窗口 -->
|
||||
<view v-if="!noDemo" class="demo-container" :class="{'demo-container--full': full}">
|
||||
<view class="demo">
|
||||
<slot></slot>
|
||||
</view>
|
||||
<!-- 提示信息 -->
|
||||
<view v-if="haveTips">
|
||||
<view class="demo__tips__icon" @click="demoTipsClick">
|
||||
<view class="icon tn-icon-help"></view>
|
||||
</view>
|
||||
<view class="demo__tips__content"
|
||||
:class="[showContentTips ? 'demo__tips__content--show' : 'demo__tips__content--hide']">
|
||||
<view v-for="(item,index) in tipsData" :key="index" class="demo__tips__content--item">{{ item }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 模式切换 -->
|
||||
<view v-if="multiMode" class="mode-switch">
|
||||
<view class="mode-switch__container">
|
||||
<view v-for="(item, index) in sectionModeListInfos" :key="index" class="mode-switch__item"
|
||||
:class="[`mode-switch-item-${index}`,{'mode-switch__item--active': modeIndex === index}]"
|
||||
@click="switchMode(index)">{{ item.name }}</view>
|
||||
|
||||
<!-- 滑块样式 -->
|
||||
<view class="mode-switch__slider" :style="[modeSwitchSliderStyle]"></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 组件对应可选项容器 -->
|
||||
<view class="section-container">
|
||||
<scroll-view
|
||||
class="section__scroll-view"
|
||||
:class="{'section__scroll-view--auto': sectionScrollViewStyle.height === 'auto'}"
|
||||
:style="[sectionScrollViewStyle]"
|
||||
:scroll-y="sectionScrollViewStyle.height !== 'auto'"
|
||||
>
|
||||
<block v-for="(item,index) in btnsList" :key="index">
|
||||
<view class="section__content" :class="{'section__content--visible': item.show}">
|
||||
<view class="section__content__title">
|
||||
<view class="section__content__title__left-line" :class="[`tn-main-gradient-${tuniaoColorList[index]}`]"></view>
|
||||
<view class="section__content__title--text tn-text-ellipsis" :class="[`tn-main-gradient-${tuniaoColorList[index]}`]">{{ item.title }}</view>
|
||||
<view class="section__content__title__right-line" :class="[`tn-main-gradient-${tuniaoColorList[index]}`]"></view>
|
||||
</view>
|
||||
<view class="section__content__btns">
|
||||
<view v-for="(section_btn,section_index) in item.optional" :key="section_index"
|
||||
class="section__content__btns__item" :class="[`tn-main-gradient-${tuniaoColorList[index]}--light`]" @click="sectionBtnClick(index, section_index)">
|
||||
<view class="section__content__btns__item__bg"
|
||||
:class="[`tn-main-gradient-${tuniaoColorList[index]}`, {'section__content__btns__item__bg--active':sectionIndex[modeIndex][index]['value'] === section_index}]"></view>
|
||||
<view class="section__content__btns__item--text tn-text-ellipsis"
|
||||
:class="[sectionIndex[modeIndex][index]['value'] === section_index ? 'section__content__btns__item--text--active' : `tn-color-${tuniaoColorList[index]}`]">{{ section_btn }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'dynamic-demo-template',
|
||||
props: {
|
||||
// 可选项列表数据
|
||||
sectionList: {
|
||||
type: Array,
|
||||
default() {
|
||||
return []
|
||||
}
|
||||
},
|
||||
// 提示信息
|
||||
tips: {
|
||||
type: [String, Array],
|
||||
default: ''
|
||||
},
|
||||
// 演示框的内容是否为铺满
|
||||
full: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否使用了自定义顶部导航栏
|
||||
customBar: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 是否全屏滚动
|
||||
fullWindowsScroll: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 没有演示内容
|
||||
noDemo: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
tipsData() {
|
||||
if (typeof this.tips === 'string') {
|
||||
return [this.tips]
|
||||
}
|
||||
return this.tips
|
||||
},
|
||||
haveTips() {
|
||||
return this.tips && this.tips.length > 0
|
||||
},
|
||||
multiMode() {
|
||||
return this.sectionList.length > 1
|
||||
},
|
||||
sectionModeList() {
|
||||
return this.sectionList.map((item) => {
|
||||
return item.name
|
||||
})
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 图鸟颜色列表
|
||||
tuniaoColorList: this.$t.color.getTuniaoColorList(),
|
||||
// 保存选项列表信息(由于prop中的数据时不能被修改的)
|
||||
_sectionList: [],
|
||||
// 模式列表信息
|
||||
sectionModeListInfos: [],
|
||||
// 所选模式的序号
|
||||
modeIndex: 0,
|
||||
// 模式选择滑块样式
|
||||
modeSwitchSliderStyle: {
|
||||
width: 0,
|
||||
left: 0
|
||||
},
|
||||
// 显示组件相关提示信息
|
||||
showContentTips: false,
|
||||
// 可选项滚动容器样式
|
||||
sectionScrollViewStyle: {
|
||||
height: 0
|
||||
},
|
||||
// 按钮列表信息
|
||||
btnsList: [],
|
||||
// 标记当前所选按钮
|
||||
sectionIndex: [],
|
||||
// 标记选项按钮是否可以滑动(使用scroll-view进行包裹)
|
||||
sectionScrollFlag: true
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
sectionList: {
|
||||
handler(value) {
|
||||
// 如果sectionList发生改变,重新初始化选项列表信息
|
||||
this.initSectionBtns()
|
||||
},
|
||||
deep: true
|
||||
},
|
||||
sectionScrollFlag(value) {
|
||||
if (!value) {
|
||||
this.sectionScrollViewStyle.height = 'auto'
|
||||
}
|
||||
},
|
||||
fullWindowsScroll: {
|
||||
handler(value) {
|
||||
if (value) {
|
||||
this.sectionScrollViewStyle.height = 'auto'
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 初始化可选项模式列表
|
||||
this.sectionModeListInfos = this.sectionModeList.map((item) => {
|
||||
return {
|
||||
name: item
|
||||
}
|
||||
})
|
||||
// 初始化选项按钮默认信息
|
||||
this.initSectionBtns()
|
||||
},
|
||||
mounted() {
|
||||
// 等待加载组件完成
|
||||
// setTimeout(() => {
|
||||
// // 计算出底部scroll-view的高度
|
||||
// this.initSectionScrollView()
|
||||
|
||||
// if (this.multiMode) {
|
||||
// // 获取模式切换标签的信息
|
||||
// this.getModeTabsInfo()
|
||||
// }
|
||||
// }, 10)
|
||||
this.$nextTick(() => {
|
||||
// 计算出底部scroll-view的高度
|
||||
this.initSectionScrollView()
|
||||
|
||||
if (this.multiMode) {
|
||||
// 获取模式切换标签的信息
|
||||
this.getModeTabsInfo()
|
||||
}
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 初始化选项滑动窗口的高度
|
||||
initSectionScrollView() {
|
||||
// 全屏滚动时不进行任何的操作
|
||||
if (this.fullWindowsScroll) {
|
||||
return
|
||||
}
|
||||
// 获取屏幕的高度
|
||||
uni.getSystemInfo({
|
||||
success: (systemInfo) => {
|
||||
// 通过当前屏幕的安全高度减去上一个元素的底部和距离上一个元素的外边距,然后减获取到的值减去标题栏的高度即可
|
||||
const navBarHeight = this.customBar ? 0 : this.vuex_custom_bar_height
|
||||
if (this.multiMode) {
|
||||
uni.createSelectorQuery().in(this).select('.mode-switch').boundingClientRect(data => {
|
||||
if (data.bottom >= systemInfo.safeArea.height) {
|
||||
this.sectionScrollFlag = false
|
||||
} else {
|
||||
this.sectionScrollFlag = true
|
||||
const containerBaseHeight = systemInfo.safeArea.height - data.bottom
|
||||
this.sectionScrollViewStyle.height = (containerBaseHeight - navBarHeight) + systemInfo.statusBarHeight - uni.upx2px(75) + 'px'
|
||||
}
|
||||
}).exec()
|
||||
} else {
|
||||
if (!this.noDemo) {
|
||||
uni.createSelectorQuery().in(this).select('.demo-container').boundingClientRect(data => {
|
||||
if (data.bottom >= systemInfo.safeArea.height) {
|
||||
this.sectionScrollFlag = false
|
||||
} else {
|
||||
this.sectionScrollFlag = true
|
||||
const containerBaseHeight = systemInfo.safeArea.height - data.bottom
|
||||
this.sectionScrollViewStyle.height = (containerBaseHeight - navBarHeight) + systemInfo.statusBarHeight - uni.upx2px(75) + 'px'
|
||||
}
|
||||
}).exec()
|
||||
} else {
|
||||
this.sectionScrollFlag = false
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
// 更新选项滑动容器的高度
|
||||
updateSectionScrollView() {
|
||||
this.$nextTick(() => {
|
||||
this.initSectionScrollView()
|
||||
})
|
||||
},
|
||||
// 获取各个模式tab的节点信息
|
||||
getModeTabsInfo() {
|
||||
let view = uni.createSelectorQuery().in(this)
|
||||
for (let i = 0; i < this.sectionModeListInfos.length; i++) {
|
||||
view.select('.mode-switch-item-' + i).boundingClientRect()
|
||||
}
|
||||
view.exec(res => {
|
||||
// 如果没有获取到,则重新获取
|
||||
if (!res.length) {
|
||||
setTimeout(() => {
|
||||
this.getModeTabsInfo()
|
||||
}, 10)
|
||||
return
|
||||
}
|
||||
// 将每个模式的宽度放入list中
|
||||
res.map((item, index) => {
|
||||
this.sectionModeListInfos[index].width = item.width
|
||||
})
|
||||
// 初始化滑块的宽度
|
||||
this.modeSwitchSliderStyle.width = this.sectionModeListInfos[0].width + 'px'
|
||||
|
||||
// 初始化滑块的位置
|
||||
this.modeSliderPosition()
|
||||
})
|
||||
},
|
||||
// 设置模式滑块的位置
|
||||
modeSliderPosition() {
|
||||
let left = 0
|
||||
// 计算当前所选模式选项到组件左边的距离
|
||||
this.sectionModeListInfos.map((item, index) => {
|
||||
if (index < this.modeIndex) left += item.width
|
||||
})
|
||||
|
||||
this.modeSwitchSliderStyle.left = left + 'px'
|
||||
},
|
||||
// 切换模式
|
||||
switchMode(index) {
|
||||
// 不允许点击当前激活的选项
|
||||
if (index === this.modeIndex) return
|
||||
this.modeIndex = index
|
||||
this.modeSliderPosition()
|
||||
this.updateSectionBtns()
|
||||
this.$emit('modeClick', {
|
||||
index: index
|
||||
})
|
||||
},
|
||||
// 点击内容提示信息
|
||||
demoTipsClick() {
|
||||
this.showContentTips = !this.showContentTips
|
||||
},
|
||||
// 初始化被选中选项按钮
|
||||
initSectionBtns() {
|
||||
this.sectionIndex = []
|
||||
this.sectionIndex = this.sectionList.map((item) => {
|
||||
if (item.hasOwnProperty('section') && item.section.length > 0) {
|
||||
return Array(item.section.length).fill({
|
||||
value: 0,
|
||||
change: false
|
||||
})
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
})
|
||||
|
||||
this._sectionList = this.$t.deepClone(this.sectionList)
|
||||
// 给本地选项按钮列表给默认show属性
|
||||
this._sectionList.map((item) => {
|
||||
const section = item.section.map((section_item) => {
|
||||
if (!section_item.hasOwnProperty('show')) {
|
||||
section_item.show = true
|
||||
}
|
||||
return section_item
|
||||
})
|
||||
item.section = section
|
||||
return item
|
||||
})
|
||||
|
||||
// 更新按钮信息
|
||||
this.updateSectionBtns()
|
||||
},
|
||||
// 跟新选项按钮信息
|
||||
updateSectionBtns(sectionIndex = -1, showState = true) {
|
||||
let sectionOptional = this._sectionList[this.modeIndex]['section']
|
||||
this.btnsList = sectionOptional.map((item, index) => {
|
||||
// 判断是否已经修改了对应的值
|
||||
let changeValue = this.sectionIndex[this.modeIndex][index]['change'] || false
|
||||
let currentSectionIndexValue = this.sectionIndex[this.modeIndex][index]['value'] || 0
|
||||
// 取出默认值(如果是已经修改过的选项,则使用之前的选项信息)
|
||||
let indexValue = changeValue ? currentSectionIndexValue : item.hasOwnProperty('current') ? item.current : 0
|
||||
// 取出是否显示当前选项
|
||||
let show = (sectionIndex !== -1 && sectionIndex === index) ? showState : item.hasOwnProperty('show') ? item.show : true
|
||||
// 处理最大最小值
|
||||
if (indexValue < 0) {
|
||||
indexValue = 0
|
||||
}
|
||||
if (indexValue >= item.optional.length) {
|
||||
indexValue = item.optional.length
|
||||
}
|
||||
// this.sectionIndex[this.modeIndex][index]['value'] = indexValue
|
||||
this.$set(this.sectionIndex[this.modeIndex], index, {value: indexValue, change: changeValue})
|
||||
item.show = show
|
||||
return item
|
||||
})
|
||||
},
|
||||
// 更新选项按钮状态信息
|
||||
updateSectionBtnsState(sectionIndex = -1, showState = true) {
|
||||
// 判断sectionIndex是否为数组
|
||||
if (this.$t.array.isArray(sectionIndex)) {
|
||||
if (sectionIndex.length === 0) {
|
||||
return
|
||||
}
|
||||
sectionIndex = sectionIndex.filter((item) => item >= 0 && item < this.sectionList[this.modeIndex]['section'].length)
|
||||
sectionIndex.map((item) => {
|
||||
this.btnsList[item]['show'] = showState
|
||||
this._sectionList[this.modeIndex]['section'][item]['show'] = showState
|
||||
})
|
||||
} else {
|
||||
if (sectionIndex < 0 || sectionIndex >= this.sectionList[this.modeIndex]['section'].length) {
|
||||
return
|
||||
}
|
||||
// 将按键的对应显示状态设置为对应的状态
|
||||
this.btnsList[sectionIndex]['show'] = showState
|
||||
this._sectionList[this.modeIndex]['section'][sectionIndex]['show'] = showState
|
||||
}
|
||||
|
||||
},
|
||||
// 更新选项按钮选中信息
|
||||
updateSectionBtnsValue(modeIndex = 0, sectionIndex = -1, value = 0) {
|
||||
if (sectionIndex < 0 || sectionIndex >= this.sectionList[modeIndex]['section'].length) {
|
||||
return
|
||||
}
|
||||
// 如果showState为false则移除对应的选项按钮,否则往对应的位置添加上对应的选项按钮
|
||||
this.sectionIndex[modeIndex][sectionIndex] = {
|
||||
value,
|
||||
change: true
|
||||
}
|
||||
},
|
||||
// 选项按钮点击事件
|
||||
sectionBtnClick(index, sectionIndex) {
|
||||
// if (this.sectionIndex[this.modeIndex][index] === sectionIndex) {
|
||||
// return
|
||||
// }
|
||||
this.$set(this.sectionIndex[this.modeIndex], index, {value: sectionIndex, change: true})
|
||||
this.$emit('click', {
|
||||
methods: this.btnsList[index]['methods'],
|
||||
index: sectionIndex,
|
||||
name: this.btnsList[index]['optional'][sectionIndex]
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dynamic-demo {
|
||||
padding-top: 78rpx;
|
||||
|
||||
/* 顶部模式切换start */
|
||||
.mode-switch {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 75rpx;
|
||||
padding: 0 30rpx;
|
||||
|
||||
&__container {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
width: 476rpx;
|
||||
height: 62rpx;
|
||||
background-color: #FFFFFF;
|
||||
box-shadow: 0rpx 10rpx 50rpx 0rpx rgba(0, 3, 72, 0.1);
|
||||
border-radius: 31rpx;
|
||||
}
|
||||
|
||||
&__item {
|
||||
flex: 1;
|
||||
height: 62rpx;
|
||||
width: 100%;
|
||||
line-height: 62rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
color: $tn-font-sub-color;
|
||||
z-index: 2;
|
||||
transition: all 0.3s;
|
||||
|
||||
&--active {
|
||||
color: #FFFFFF;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
&__slider {
|
||||
position: absolute;
|
||||
height: 62rpx;
|
||||
border-radius: 31rpx;
|
||||
// background-image: linear-gradient(-86deg, #FF8359 0%, #FFDF40 100%);
|
||||
background-image: linear-gradient(-86deg, #00C3FF 0%, #58FFF5 100%);
|
||||
box-shadow: 1rpx 10rpx 24rpx 0rpx #00C3FF77;
|
||||
z-index: 1;
|
||||
transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||
}
|
||||
}
|
||||
|
||||
/* 顶部模式切换end */
|
||||
|
||||
/* 演示内容展示start */
|
||||
.demo-container {
|
||||
min-height: 327rpx;
|
||||
width: calc(100% - 60rpx);
|
||||
background-color: #FFFFFF;
|
||||
box-shadow: 0rpx 10rpx 50rpx 0rpx rgba(0, 3, 72, 0.1);
|
||||
margin: 0 30rpx 5rpx 30rpx;
|
||||
border-radius: 20rpx;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
&--full {
|
||||
display: inline-block;
|
||||
padding-bottom: 20rpx;
|
||||
min-height: 0rpx;
|
||||
padding: 10rpx 20rpx 30rpx;
|
||||
}
|
||||
|
||||
.demo {
|
||||
padding-top: 70rpx;
|
||||
|
||||
&__tips {
|
||||
&__icon {
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
right: 16rpx;
|
||||
width: 39rpx;
|
||||
height: 39rpx;
|
||||
line-height: 39rpx;
|
||||
font-size: 39rpx;
|
||||
|
||||
.icon {
|
||||
background: linear-gradient(-45deg, #FF8359 0%, #FFDF40 100%);
|
||||
-webkit-background-clip: text;
|
||||
color: transparent;
|
||||
text-shadow: 0rpx 10rpx 10rpx rgba(255, 156, 82, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
position: absolute;
|
||||
top: 65rpx;
|
||||
right: 16rpx;
|
||||
font-size: 20rpx;
|
||||
margin-left: 20rpx;
|
||||
word-wrap: normal;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #E6E6E6;
|
||||
padding: 20rpx;
|
||||
border-radius: 10rpx;
|
||||
transition: transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1);
|
||||
transform-origin: 0 0;
|
||||
z-index: 999999;
|
||||
|
||||
&--hide {
|
||||
transform: scaleY(0);
|
||||
}
|
||||
|
||||
&--show {
|
||||
transform: scaleY(100%);
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-width: 4px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent rgba(149, 149, 149, 0.1) transparent;
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
right: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 演示内容展示end */
|
||||
|
||||
/* 可选项start */
|
||||
.section-container {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
margin-top: 70rpx;
|
||||
|
||||
.section {
|
||||
&__content {
|
||||
margin-top: 70rpx;
|
||||
display: none;
|
||||
|
||||
&--visible {
|
||||
display: block;
|
||||
|
||||
&:last-child {
|
||||
padding-bottom: calc(70rpx + env(safe-area-inset-bottom));
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-child(1) {
|
||||
margin-top: 0rpx;
|
||||
}
|
||||
|
||||
&__title {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 0 30rpx;
|
||||
text-align: center;
|
||||
|
||||
&__left-line,
|
||||
&__right-line {
|
||||
|
||||
width: 100rpx;
|
||||
height: 2rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
&__left-line {
|
||||
&::after {
|
||||
content: '';
|
||||
background: inherit;
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
position: absolute;
|
||||
top: -12rpx;
|
||||
right: 0rpx;
|
||||
border-radius: 50%;
|
||||
transform: translateY(50%);
|
||||
}
|
||||
}
|
||||
|
||||
&__right-line {
|
||||
&::after {
|
||||
content: '';
|
||||
background: inherit;
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
position: absolute;
|
||||
top: -12rpx;
|
||||
left: 0rpx;
|
||||
border-radius: 50%;
|
||||
transform: translateY(50%);
|
||||
}
|
||||
}
|
||||
|
||||
&--text {
|
||||
-webkit-background-clip: text;
|
||||
color: transparent;
|
||||
min-width: 124rpx;
|
||||
height: 30rpx;
|
||||
font-size: 32rpx;
|
||||
line-height: 1;
|
||||
margin: 0 35rpx;
|
||||
}
|
||||
}
|
||||
|
||||
&__btns {
|
||||
width: calc(100% - 60rpx);
|
||||
margin: 0 30rpx;
|
||||
margin-top: 29rpx;
|
||||
padding: 50rpx 30rpx 0rpx 0rpx;
|
||||
background-color: #FFFFFF;
|
||||
box-shadow: 0rpx 10rpx 50rpx 0rpx rgba(0, 3, 72, 0.1);
|
||||
border-radius: 20rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
|
||||
&__item {
|
||||
max-width: 30%;
|
||||
padding: 17rpx 36rpx;
|
||||
border-radius: 10rpx;
|
||||
margin-bottom: 40rpx;
|
||||
margin-left: 40rpx;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
|
||||
// &::before {
|
||||
// content: " ";
|
||||
// position: absolute;
|
||||
// top: 10rpx;
|
||||
// left: 1rpx;
|
||||
// width: 100%;
|
||||
// height: 100%;
|
||||
// background: inherit;
|
||||
// filter: blur(24rpx);
|
||||
// opacity: 1;
|
||||
// z-index: -1;
|
||||
// }
|
||||
|
||||
&__bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: inherit;
|
||||
z-index: -1;
|
||||
opacity: 0;
|
||||
transform: scale(0);
|
||||
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
||||
|
||||
&--active {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
&--text {
|
||||
font-size: 24rpx;
|
||||
line-height: 1.2em;
|
||||
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
||||
|
||||
&--active {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 可选项end */
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
<template>
|
||||
<view class="multiple-options">
|
||||
<view class="list">
|
||||
<block v-for="(item, index) in listData" :key="index">
|
||||
<view
|
||||
class="list__item"
|
||||
:class="[`tn-main-gradient-${tuniaoColorList[item.bgColorIndex]}--light`]"
|
||||
@tap="navOptionsPage(item.url)"
|
||||
>
|
||||
<view class="list__content">
|
||||
<view class="list__content__title">{{ item.title }}</view>
|
||||
<view class="list__content__desc">{{ item.desc }}</view>
|
||||
</view>
|
||||
<view class="list__icon">
|
||||
<view class="list__icon__main" :class="[`tn-icon-${item.mainIcon}`, `tn-main-gradient-${tuniaoColorList[item.bgColorIndex]}`]"></view>
|
||||
<view class="list__icon__sub" :class="[`tn-icon-${item.subIcon}`, `tn-main-gradient-${tuniaoColorList[item.bgColorIndex]}`]"></view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'multiple-options-demo',
|
||||
props: {
|
||||
// 显示的列表数据
|
||||
list: {
|
||||
type: Array,
|
||||
default() {
|
||||
return []
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 图鸟颜色列表
|
||||
tuniaoColorList: [
|
||||
'red',
|
||||
'purplered',
|
||||
'purple',
|
||||
'bluepurple',
|
||||
'aquablue',
|
||||
'blue',
|
||||
'indigo',
|
||||
'cyan',
|
||||
'teal',
|
||||
'green',
|
||||
'orange',
|
||||
'orangered'
|
||||
],
|
||||
listData: []
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
list(val) {
|
||||
this.initList()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initList()
|
||||
},
|
||||
methods: {
|
||||
// 初始化列表数据
|
||||
initList() {
|
||||
// 给列表添加背景颜色数据
|
||||
this.listData = this.list.map((item, index) => {
|
||||
item.bgColorIndex = this.getBgNum()
|
||||
item.mainIcon = item?.mainIcon || 'computer-fill'
|
||||
item.subIcon = item?.subIcon || 'share'
|
||||
return item
|
||||
})
|
||||
},
|
||||
// 跳转到对应的选项页面
|
||||
navOptionsPage(url) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
})
|
||||
},
|
||||
// 获取酷炫背景随机数
|
||||
getBgNum() {
|
||||
return Math.floor((Math.random() * this.tuniaoColorList.length))
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.list {
|
||||
|
||||
&__item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
width: calc(100% - 60rpx);
|
||||
margin: 108rpx 30rpx 0rpx 30rpx;
|
||||
box-shadow: 0rpx 10rpx 50rpx 0rpx rgba(0, 3, 72, 0.1);
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
|
||||
&__content {
|
||||
flex: 1;
|
||||
// color: $tn-font-color;
|
||||
margin: 34rpx 0rpx 27rpx 37rpx;
|
||||
|
||||
&__title {
|
||||
font-size: 36rpx;
|
||||
font-weight: bold;
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
&__desc {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
|
||||
&__icon {
|
||||
flex: 1;
|
||||
margin-right: 26rpx;
|
||||
position: relative;
|
||||
|
||||
&__main, &__sub {
|
||||
-webkit-background-clip: text;
|
||||
color: transparent;
|
||||
position: absolute;
|
||||
transition: transform 0.25s ease;
|
||||
}
|
||||
|
||||
&__main {
|
||||
font-size: 200rpx;
|
||||
width: 190rpx;
|
||||
line-height: 200rpx;
|
||||
top: 0;
|
||||
right: 0rpx;
|
||||
transform: translateY(-60%);
|
||||
}
|
||||
&__sub {
|
||||
font-size: 70rpx;
|
||||
top: 0;
|
||||
right: 175rpx;
|
||||
transform: translateY(-5rpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
<template>
|
||||
<view class="nav-index-button" :style="{bottom: `${bottom}rpx`, right: `${right}rpx`}" @tap.stop="navIndex">
|
||||
<view class="nav-index-button__content">
|
||||
<view class="nav-index-button__content--icon tn-flex tn-flex-row-center tn-flex-col-center tn-shadow-blur tn-cool-bg-color-5">
|
||||
<view class="tn-icon-home-fill"></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="nav-index-button__meteor">
|
||||
<view class="nav-index-button__meteor__wrapper">
|
||||
<view v-for="(item,index) in 6" :key="index" class="nav-index-button__meteor__item" :style="{transform: `rotateX(${-60 + (30 * index)}deg) rotateZ(${-60 + (30 * index)}deg)`}">
|
||||
<view class="nav-index-button__meteor__item--pic"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'nav-index-button',
|
||||
props: {
|
||||
// 距离底部的距离
|
||||
bottom: {
|
||||
type: [Number, String],
|
||||
default: 300
|
||||
},
|
||||
// 距离右边的距离
|
||||
right: {
|
||||
type: [Number, String],
|
||||
default: 75
|
||||
},
|
||||
// 首页地址
|
||||
indexPath: {
|
||||
type: String,
|
||||
default: '/pages/index'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 跳转回首页
|
||||
navIndex() {
|
||||
// 通过判断当前页面的页面栈信息,是否有上一页进行返回,如果没有则跳转到首页
|
||||
const pages = getCurrentPages()
|
||||
if (pages && pages.length > 0) {
|
||||
const indexPath = this.indexPath || '/pages/index'
|
||||
const firstPage = pages[0]
|
||||
if (pages.length == 1 && (!firstPage.route || firstPage.route != indexPath.substring(1, indexPath.length))) {
|
||||
uni.reLaunch({
|
||||
url: indexPath
|
||||
})
|
||||
} else {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
}
|
||||
} else {
|
||||
uni.reLaunch({
|
||||
url: indexPath
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.nav-index-button {
|
||||
position: fixed;
|
||||
animation: suspension 3s ease-in-out infinite;
|
||||
z-index: 999999;
|
||||
|
||||
&__content {
|
||||
position: absolute;
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
&--icon {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
font-size: 60rpx;
|
||||
border-radius: 50%;
|
||||
margin-bottom: 18rpx;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
transform: scale(0.85);
|
||||
|
||||
&::after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
border-radius: inherit;
|
||||
opacity: 1;
|
||||
transform: scale(1, 1);
|
||||
background-size: 100% 100%;
|
||||
background-image: url(https://resource.tuniaokj.com/images/cool_bg_image/icon_bg6.png);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__meteor {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
transform-style: preserve-3d;
|
||||
transform: translate(-50%, -50%) rotateY(75deg) rotateZ(10deg);
|
||||
|
||||
&__wrapper {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
transform-style: preserve-3d;
|
||||
animation: spin 20s linear infinite;
|
||||
}
|
||||
|
||||
&__item {
|
||||
position: absolute;
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
border-radius: 1000rpx;
|
||||
left: 0;
|
||||
top: 0;
|
||||
|
||||
&--pic {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url(https://resource.tuniaokj.com/images/cool_bg_image/arc3.png) no-repeat center center;
|
||||
background-size: 100% 100%;
|
||||
animation: arc 4s linear infinite;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes suspension {
|
||||
0%, 100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(-0.8rem);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotateX(-360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes arc {
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
* 动态参数演示mixin
|
||||
*/
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
// 效果显示框top的值
|
||||
contentContainerTop: '0px',
|
||||
contentContainerIsTop: false,
|
||||
|
||||
// 参数显示框top的值
|
||||
sectionContainerTop: '0px'
|
||||
}
|
||||
},
|
||||
onReady() {
|
||||
this.updateSectionContainerTop()
|
||||
},
|
||||
methods: {
|
||||
// 处理演示效果框的位置
|
||||
async _handleContentConatinerPosition() {
|
||||
// 获取效果演示框的节点信息
|
||||
const contentContainer = await this._tGetRect('#content_container')
|
||||
// 获取参数框的节点信息
|
||||
this._tGetRect('#section_container').then((res) => {
|
||||
// 判断参数框是否在移动,如果是则更新效果框的位置
|
||||
// 如果效果框的顶部已经触控到顶部导航栏就停止跟随
|
||||
if (res.top - contentContainer.bottom != 15) {
|
||||
const newTop = res.top - (contentContainer.height + uni.upx2px(20))
|
||||
const minTop = this.vuex_custom_bar_height + 1
|
||||
if (newTop < minTop) {
|
||||
this.contentContainerTop = minTop + 'px'
|
||||
this.contentContainerIsTop = true
|
||||
} else {
|
||||
this.contentContainerTop = newTop + 'px'
|
||||
this.contentContainerIsTop = false
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 更新状态切换栏位置信息
|
||||
updateSectionContainerTop() {
|
||||
this._tGetRect('#content_container').then((res) => {
|
||||
this.contentContainerTop = (this.vuex_custom_bar_height + 148) + 'px'
|
||||
this.sectionContainerTop = (res.height + 20) + 'px'
|
||||
})
|
||||
}
|
||||
},
|
||||
// 监听页面滚动
|
||||
onPageScroll() {
|
||||
this._handleContentConatinerPosition()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
/**
|
||||
* 演示页面mixin
|
||||
*/
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
// 更新顶部导航栏信息
|
||||
this.updateCustomBarInfo()
|
||||
},
|
||||
methods: {
|
||||
// 点击左上角返回按钮时触发事件
|
||||
goBack() {
|
||||
// 通过判断当前页面的页面栈信息,是否有上一页进行返回,如果没有则跳转到首页
|
||||
const pages = getCurrentPages()
|
||||
if (pages && pages.length > 0) {
|
||||
const firstPage = pages[0]
|
||||
if (pages.length == 1 && (!firstPage.route || firstPage.route != 'pages/index')) {
|
||||
uni.reLaunch({
|
||||
url: '/pages/index'
|
||||
})
|
||||
} else {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
}
|
||||
} else {
|
||||
uni.reLaunch({
|
||||
url: '/pages/index'
|
||||
})
|
||||
}
|
||||
},
|
||||
// 更新顶部导航栏信息
|
||||
async updateCustomBarInfo() {
|
||||
// 获取vuex中的自定义顶栏的高度
|
||||
let customBarHeight = this.vuex_custom_bar_height
|
||||
let statusBarHeight = this.vuex_status_bar_height
|
||||
// 如果获取失败则重新获取
|
||||
if (!customBarHeight) {
|
||||
try {
|
||||
const navBarInfo = await this.$t.updateCustomBar()
|
||||
customBarHeight = navBarInfo.customBarHeight
|
||||
statusBarHeight = navBarInfo.statusBarHeight
|
||||
} catch(e) {
|
||||
setTimeout(() => {
|
||||
this.updateCustomBarInfo()
|
||||
}, 10)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 更新vuex中的导航栏信息
|
||||
this.$t.vuex('vuex_status_bar_height', statusBarHeight)
|
||||
this.$t.vuex('vuex_custom_bar_height', customBarHeight)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,330 @@
|
|||
/**
|
||||
* 页面展示列表数据
|
||||
*/
|
||||
export default {
|
||||
data: [{
|
||||
title: '图鸟首页',
|
||||
backgroundColor: 'tn-cool-bg-color-1',
|
||||
list: [{
|
||||
icon: 'code',
|
||||
title: '关于我们',
|
||||
url: '/homePages/about',
|
||||
author: '图鸟北北'
|
||||
},{
|
||||
icon: 'code',
|
||||
title: '全局搜索',
|
||||
url: '/homePages/search',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '今日热榜',
|
||||
url: '/homePages/hot',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '前端业务',
|
||||
url: '/homePages/profession',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '加载效果',
|
||||
url: '/homePages/loading',
|
||||
author: '图鸟北北'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '酷炫圈子',
|
||||
backgroundColor: 'tn-cool-bg-color-1',
|
||||
list: [{
|
||||
icon: 'code',
|
||||
title: '博主_Me',
|
||||
url: '/circlePages/blogger',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '博主_Ta',
|
||||
url: '/circlePages/blogger_other',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '编辑发布',
|
||||
url: '/circlePages/edit',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '广告页',
|
||||
url: '/circlePages/advertise',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '资讯详情',
|
||||
url: '/circlePages/news',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '名片王者',
|
||||
url: '/circlePages/king',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '智能名片',
|
||||
url: '/circlePages/business',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '精选圈子',
|
||||
url: '/circlePages/group',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '积分排行',
|
||||
url: '/circlePages/ranking',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '圈子详情',
|
||||
url: '/circlePages/details',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '预约接龙',
|
||||
url: '/circlePages/reserve',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '活动创建',
|
||||
url: '/circlePages/create',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '打造圈子',
|
||||
url: '/circlePages/build',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '一起群聊',
|
||||
url: '/circlePages/chat',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '对话聊天',
|
||||
url: '/circlePages/chatting',
|
||||
author: '图鸟北北'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '活动广场',
|
||||
backgroundColor: 'tn-cool-bg-color-1',
|
||||
list: [{
|
||||
icon: 'code',
|
||||
title: '地图打卡',
|
||||
url: '/activityPages/map',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '快速答题',
|
||||
url: '/activityPages/topic',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '课程学习',
|
||||
url: '/activityPages/study',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '开源项目',
|
||||
url: '/activityPages/project',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '活动星球',
|
||||
url: '/activityPages/planet',
|
||||
author: '图鸟北北'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '商品优选',
|
||||
backgroundColor: 'tn-cool-bg-color-1',
|
||||
list: [{
|
||||
icon: 'code',
|
||||
title: '优质商家',
|
||||
url: '/preferredPages/shop',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '商品详情',
|
||||
url: '/preferredPages/product',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '历史订单',
|
||||
url: '/preferredPages/order',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '商品分类',
|
||||
url: '/preferredPages/classify',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '商家相册',
|
||||
url: '/preferredPages/photo',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '品牌官网',
|
||||
url: '/preferredPages/website',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '积分兑换',
|
||||
url: '/preferredPages/redeem',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '免单活动',
|
||||
url: '/preferredPages/award',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '免单获取',
|
||||
url: '/preferredPages/awardget',
|
||||
author: '图鸟北北'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '关于我的',
|
||||
backgroundColor: 'tn-cool-bg-color-1',
|
||||
list: [{
|
||||
icon: 'code',
|
||||
title: '使用协议',
|
||||
url: '/minePages/protocol',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '授权登录',
|
||||
url: '/minePages/login',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '消息通知',
|
||||
url: '/minePages/message',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '全局设置',
|
||||
url: '/minePages/set',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '立即体验',
|
||||
url: '/minePages/start',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '感谢名单',
|
||||
url: '/minePages/thanks',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '版本更新',
|
||||
url: '/minePages/version',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '帮助中心',
|
||||
url: '/minePages/help',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '头像上传',
|
||||
url: '/minePages/avatar',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '积分明细',
|
||||
url: '/minePages/integral',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '积分签到',
|
||||
url: '/minePages/signed',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '好物收藏',
|
||||
url: '/minePages/collect',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '账号安全',
|
||||
url: '/minePages/safety',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '赞赏支持',
|
||||
url: '/minePages/reward',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '缺省页',
|
||||
url: '/minePages/default',
|
||||
author: '图鸟北北'
|
||||
},
|
||||
{
|
||||
icon: 'code',
|
||||
title: '富文本',
|
||||
url: '/minePages/content',
|
||||
author: '图鸟北北'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
37
main.js
|
|
@ -1,10 +1,10 @@
|
|||
import Vue from 'vue'
|
||||
import App from './App'
|
||||
|
||||
|
||||
import store from './store'
|
||||
import Vue from 'vue'
|
||||
import HttpRequest from './common/httpRequest'
|
||||
import HttpCache from './common/cache'
|
||||
import queue from './common/queue'
|
||||
import TuniaoUI from 'tuniao-ui'
|
||||
|
||||
Vue.config.productionTip = false
|
||||
Vue.prototype.$Request = HttpRequest;
|
||||
|
|
@ -12,7 +12,6 @@ Vue.prototype.$queue = queue;
|
|||
|
||||
Vue.prototype.$Sysconf = HttpRequest.config;
|
||||
Vue.prototype.$SysCache = HttpCache;
|
||||
|
||||
App.mpType = 'app'
|
||||
|
||||
// 引入全局uView
|
||||
|
|
@ -21,15 +20,41 @@ Vue.use(uView);
|
|||
|
||||
|
||||
const app = new Vue({
|
||||
...App
|
||||
store,
|
||||
...App
|
||||
})
|
||||
|
||||
// http拦截器,将此部分放在new Vue()和app.$mount()之间,才能App.vue中正常使用
|
||||
import httpInterceptor from '@/common/http.interceptor.js'
|
||||
Vue.use(httpInterceptor, app)
|
||||
|
||||
Vue.use(TuniaoUI)
|
||||
// 引入TuniaoUI提供的vuex简写方法
|
||||
let vuexStore = require('@/store/$t.mixin.js')
|
||||
Vue.mixin(vuexStore)
|
||||
// http接口API集中管理引入部分
|
||||
import httpApi from '@/common/http.api.js'
|
||||
Vue.use(httpApi, app)
|
||||
|
||||
app.$mount()
|
||||
|
||||
// #ifdef APP
|
||||
|
||||
const sysInfo = uni.getSystemInfoSync();
|
||||
let isIos = sysInfo.platform == 'ios'
|
||||
|
||||
if (isIos) {
|
||||
const originNavigateTo = uni.navigateTo
|
||||
|
||||
uni.navigateTo = (params) => {
|
||||
let jsonParam = JSON.parse(JSON.stringify(params))
|
||||
|
||||
if (isIos && jsonParam.url.includes('/me/detail/detail')) {
|
||||
jsonParam.url = jsonParam.url.replace('/me/detail/detail', '/me/detail/detailIOS')
|
||||
}
|
||||
|
||||
originNavigateTo(jsonParam)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// #endif
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"name" : "短剧",
|
||||
"appid" : "__UNI__CA593C1",
|
||||
"name" : "斯耀短剧",
|
||||
"appid" : "__UNI__E0B05B1",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : "100",
|
||||
"versionName" : "1.2.2",
|
||||
"versionCode" : 122,
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
},
|
||||
"usingComponents" : true,
|
||||
"nvueStyleCompiler" : "uni-app",
|
||||
"compilerVersion" : 3,
|
||||
"compilerVersion" : 7,
|
||||
"splashscreen" : {
|
||||
"alwaysShowBeforeRender" : true,
|
||||
"waiting" : true,
|
||||
|
|
@ -27,8 +27,8 @@
|
|||
"VideoPlayer" : {},
|
||||
"Camera" : {},
|
||||
"Record" : {},
|
||||
"Push" : {},
|
||||
"OAuth" : {}
|
||||
"OAuth" : {},
|
||||
"Push" : {}
|
||||
},
|
||||
/* 应用发布信息 */
|
||||
"distribute" : {
|
||||
|
|
@ -56,11 +56,19 @@
|
|||
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
],
|
||||
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
|
||||
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
|
||||
"minSdkVersion" : 26,
|
||||
"targetSdkVersion" : 33,
|
||||
"schemes" : "com.hnsiyao.duanju"
|
||||
},
|
||||
/* ios打包配置 */
|
||||
"ios" : {
|
||||
"dSYMs" : false
|
||||
"dSYMs" : false,
|
||||
"urltypes" : "com.hnsiyao.duanju",
|
||||
"privacyDescription" : {
|
||||
"NSPhotoLibraryUsageDescription" : "获取您的相册读取权限,目的是为了在我的资料页面使用相册读取功能,修改上传头像",
|
||||
"NSCameraUsageDescription" : "获取您的摄像头权限,目的是为了在我的资料页面使用摄像头功能,修改上传头像"
|
||||
}
|
||||
},
|
||||
/* SDK配置 */
|
||||
"sdkConfigs" : {
|
||||
|
|
@ -77,14 +85,15 @@
|
|||
},
|
||||
"oauth" : {
|
||||
"apple" : {},
|
||||
"univerify" : {},
|
||||
"weixin" : {
|
||||
"appid" : "wxeaffcaea958472d3",
|
||||
"appsecret" : "32f6f3ce599abff2fa0191a36780c66c",
|
||||
"UniversalLinks" : "https://maxiong.xianmxkj.com/"
|
||||
}
|
||||
},
|
||||
"univerify" : {}
|
||||
},
|
||||
"ad" : {
|
||||
"gdt" : {}
|
||||
},
|
||||
"ad" : {},
|
||||
"push" : {
|
||||
"unipush" : {}
|
||||
}
|
||||
|
|
@ -159,13 +168,21 @@
|
|||
"enable" : false
|
||||
},
|
||||
"h5" : {
|
||||
"title" : "短剧",
|
||||
"title" : "斯耀短剧",
|
||||
"domain" : "https://jiaoyu.xianmxkj.com",
|
||||
"router" : {
|
||||
"mode" : "history"
|
||||
}
|
||||
"mode" : "history",
|
||||
"cache" : {
|
||||
"use" : true,
|
||||
"maxAge" : "86400000",
|
||||
"version" : "1.0.7"
|
||||
}
|
||||
},
|
||||
"template" : "template.html"
|
||||
},
|
||||
"mp-kuaishou" : {
|
||||
"appid" : "ks699465318929951101"
|
||||
}
|
||||
}
|
||||
// 版本号,更新版本号可以清除缓存
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,265 @@
|
|||
<template>
|
||||
<view>
|
||||
<view class="jf flex align-center justify-between">
|
||||
<view class="jf-l">
|
||||
<view class="jf-l-t">
|
||||
当前余额
|
||||
</view>
|
||||
<view class="jf-l-b">
|
||||
{{amount || '0.00'}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="jf-r" @click="withdraw()">
|
||||
提现
|
||||
</view>
|
||||
</view>
|
||||
<view class="listTitle flex align-center">
|
||||
<u-icon name="order" color="#2e2f33" size="50"></u-icon>
|
||||
<text>
|
||||
余额明细
|
||||
</text>
|
||||
</view>
|
||||
<view class="list">
|
||||
<scroll-view @scrollToLower="scrollToLower" :refresher-enabled="refresherTriggered"
|
||||
@scrollToUpper="scrollToUpper" scroll-y="true"
|
||||
style="width: 100%;height: 100%;background-color: #ffffff;padding-bottom: 30rpx;">
|
||||
<view class="list-item flex align-center justify-center" v-for="(item,index) in list" :key="index">
|
||||
<view class="list-item-box flex align-center justify-between">
|
||||
<view class="list-item-box-l">
|
||||
<view class="list-item-box-l-t">
|
||||
{{item.content}}
|
||||
</view>
|
||||
<view class="list-item-box-l-b">
|
||||
{{item.createTime}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="list-item-box-r" v-if="item.type == 1">
|
||||
+{{item.num}}
|
||||
</view>
|
||||
<view class="list-item-box-r" v-else>
|
||||
-{{item.num}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="" style="width: 100%;height: 30rpx;" v-if="list.length>0"></view>
|
||||
<u-loadmore v-if="list.length>0" :status="status" />
|
||||
<empty :isShow="true" title="暂无明细" v-if="list.length == 0" />
|
||||
</scroll-view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import empty from '../../components/empty.vue'
|
||||
export default {
|
||||
components: {
|
||||
empty
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
boxStyle: {
|
||||
margin: 0,
|
||||
padding: '200rpx 0 0 0',
|
||||
},
|
||||
amount: 0,
|
||||
list: [],
|
||||
status: 'loadmore',
|
||||
page: 1,
|
||||
limit: 10,
|
||||
pages: 1,
|
||||
refresherTriggered: true
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
console.log(options)
|
||||
if ( options && options.amount) {
|
||||
this.amount = options.amount
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.getAmount()
|
||||
this.getUserBalanceList()
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.getAmount()
|
||||
},
|
||||
methods: {
|
||||
|
||||
/**
|
||||
* 获取当前钱包信息
|
||||
*/
|
||||
getAmount() {
|
||||
this.$Request.getT('app/moneyDetails/selectUserMoney').then(res => {
|
||||
uni.stopPullDownRefresh()
|
||||
if (res.code === 0) {
|
||||
this.amount = res.data.amount || 0
|
||||
} else {
|
||||
this.amount = '0.00'
|
||||
}
|
||||
})
|
||||
},
|
||||
withdraw() {
|
||||
let params = {
|
||||
amount: this.amount
|
||||
}
|
||||
this.$Request.getT('app/cash/withdraw', params).then(res => {
|
||||
console.log(res)
|
||||
if (res.code === 0) {
|
||||
// this.amount = res.data.amount
|
||||
} else {
|
||||
// this.amount = '0.00'
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取余额明细
|
||||
*/
|
||||
getUserBalanceList() {
|
||||
let data = {
|
||||
page: this.page,
|
||||
limit: this.limit
|
||||
}
|
||||
this.$Request.getT('app/moneyDetails/queryUserMoneyDetails', data).then(res => {
|
||||
setTimeout(() => {
|
||||
this.refresherTriggered = false
|
||||
}, 1500)
|
||||
if (res.code === 0) {
|
||||
this.pages = res.data.pages
|
||||
if (this.page < this.pages) {
|
||||
this.status = 'loadmore'
|
||||
} else {
|
||||
this.status = 'nomore'
|
||||
}
|
||||
if (this.page === 1) {
|
||||
this.list = res.data.records
|
||||
} else {
|
||||
this.list = [...this.list, ...res.data.records]
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
goNav(url) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
})
|
||||
},
|
||||
//上拉刷新
|
||||
scrollToUpper() {
|
||||
this.page = 1
|
||||
this.refresherTriggered = true
|
||||
this.getUserBalanceList()
|
||||
},
|
||||
//加载更多
|
||||
scrollToLower() {
|
||||
if (this.page < this.pages) {
|
||||
this.status = 'loading'
|
||||
this.page += 1
|
||||
this.getUserBalanceList()
|
||||
} else {
|
||||
this.status = 'nomore'
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.jf {
|
||||
width: 100%;
|
||||
height: 252rpx;
|
||||
background: linear-gradient(90deg, rgba(255, 117, 129, 0.6) 0%, #ff7581 100%);
|
||||
padding: 0 40rpx;
|
||||
|
||||
.jf-l-t {
|
||||
color: #ffffff;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.jf-l-b {
|
||||
font-size: 40rpx;
|
||||
color: #ffffff;
|
||||
font-weight: 600;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.jf-r {
|
||||
padding: 20rpx 40rpx;
|
||||
border-radius: 40rpx;
|
||||
color: #ff7581;
|
||||
background-color: #ffffff;
|
||||
font-size: 28rpx;
|
||||
font-weight: 500;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.listTitle {
|
||||
width: 100%;
|
||||
height: 110rpx;
|
||||
margin-top: -40rpx;
|
||||
background-color: #ffffff;
|
||||
border-radius: 30rpx 30rpx 0 0;
|
||||
border-bottom: 1px solid hsla(0, 0%, 90.2%, .8);
|
||||
padding-left: 20rpx;
|
||||
|
||||
text {
|
||||
color: #2e2f33;
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
margin-left: 20rpx;
|
||||
padding-top: 8rpx;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.list {
|
||||
width: 100%;
|
||||
/* #ifdef H5 */
|
||||
height: calc(100vh - 252rpx - 70rpx - 88rpx);
|
||||
/* #endif */
|
||||
/* #ifndef H5 */
|
||||
height: calc(100vh - 252rpx - 70rpx);
|
||||
/* #endif */
|
||||
background-color: #ffffff;
|
||||
|
||||
.list-item {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.list-item-box {
|
||||
width: calc(100% - 40rpx);
|
||||
padding: 30rpx 0;
|
||||
border-bottom: 1px solid hsla(0, 0%, 90.2%, .8);
|
||||
|
||||
.list-item-box-l-t {
|
||||
color: #2e2f33;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.list-item-box-l-b {
|
||||
font-size: 24rpx;
|
||||
color: #aeb2c1;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.list-item-box-r {
|
||||
color: #2e2f33;
|
||||
font-weight: 600;
|
||||
font-size: 36rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,746 @@
|
|||
<template>
|
||||
|
||||
<view class="almost-lottery min-page">
|
||||
<u-navbar title="" back-icon-color="#fff" :background="background" immersive :border-bottom="false"
|
||||
title-color="#fff"></u-navbar>
|
||||
<!-- head -->
|
||||
<view class="almost-lottery__head">
|
||||
<view class="btn-group u-flex u-row-between">
|
||||
<view :class="['action', isApple && 'action-shadow']" @click="toRed">
|
||||
<text class="pack"></text>
|
||||
<text class="content">红包<text class="num">{{ totalMoney }}</text></text>
|
||||
</view>
|
||||
<view :class="['action', isApple && 'action-shadow']" @click="toGift">
|
||||
<text class="gift"></text>
|
||||
<text class="content">我的奖品</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="tip"><text class="tip-content">每次抽奖消耗 {{ goldNum }} 金币,不限次数</text></view> -->
|
||||
</view>
|
||||
<!-- action -->
|
||||
|
||||
<!-- <view class="almost-lottery__action-dev" @tap="handleInitCanvas" v-if="isDev">
|
||||
<text class="text">重新生成画板-开发模式使用</text>
|
||||
</view>
|
||||
<view class="almost-lottery__action-dev" @tap="handleCheckPopup">
|
||||
<text class="text">查看 uni-popup 用例</text>
|
||||
</view> -->
|
||||
|
||||
<!-- lottery -->
|
||||
<view class="almost-lottery__wheel">
|
||||
<view class="almost-lottery__count">
|
||||
<text class="text">剩余免费抽奖 {{ freeNum }} 次</text>
|
||||
</view>
|
||||
<!-- <button @click="showLingPop">showLingPop</button> -->
|
||||
<almost-lottery :lottery-size="lotteryConfig.lotterySize" :action-size="lotteryConfig.actionSize"
|
||||
:selfTime="selfTime"
|
||||
:ring-count="8" :duration="3.5" :self-rotaty="false" :img-circled="true" :canvasCached="true"
|
||||
:prize-list="prizeList" :prize-index="prizeIndex" :lotteryBg="lotteryBg" :actionBg="actionBg"
|
||||
@reset-index="prizeIndex = -1" @draw-before="handleDrawBefore" @draw-start="handleDrawStart"
|
||||
@draw-end="handleDrawEnd" @finish="handleDrawFinish" v-if="prizeList.length" />
|
||||
|
||||
</view>
|
||||
<!-- rule -->
|
||||
<view class="almost-lottery__rule">
|
||||
<view class="rule-head">
|
||||
<view class="line"></view>
|
||||
<text class="title">活动规则</text>
|
||||
<view class="line"></view>
|
||||
</view>
|
||||
<view class="rule-body">
|
||||
<view class="item">
|
||||
<view class="number">1</view>
|
||||
<view class="text">
|
||||
<text>抽奖细则:</text>
|
||||
<text>每日前{{ freeNumDay }}次付款均可获得抽奖机会</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item item-rule">
|
||||
<view class="number">2</view>
|
||||
<view class="text">
|
||||
<text>奖励说明:红包奖励将自动发放到红包余额,已绑定支付宝账号将会自动发起提现。其余奖品则需联系客服领取。</text>
|
||||
<!-- <text>b.金币奖:系统会即时转入金币账户,可在平台内使用。</text> -->
|
||||
</view>
|
||||
</view>
|
||||
<!-- <template >
|
||||
<view class="item">
|
||||
<view class="number">3</view>
|
||||
<view class="text">本次活动由XXXXXXX发起。</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="number">4</view>
|
||||
<view class="text">本活动仅限17岁以上用户参加。</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="number">5</view>
|
||||
<view class="text">本活动最终解释权归XXXXXXX所有。</view>
|
||||
</view>
|
||||
</template> -->
|
||||
</view>
|
||||
</view>
|
||||
<ling-qu ref="refLingqu" @close="lingquClose" ></ling-qu>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AlmostLottery from '@/uni_modules/almost-lottery/components/almost-lottery/almost-lottery.vue'
|
||||
import lingQu from '@/components/pop-ling-qu.vue'
|
||||
import {
|
||||
clearCacheFile,
|
||||
clearStore
|
||||
} from '@/uni_modules/almost-lottery/utils/almost-utils.js'
|
||||
export default {
|
||||
name: 'Home',
|
||||
components: {
|
||||
AlmostLottery,lingQu
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 1 订单拉起抽奖
|
||||
// 2 周任务拉起抽奖
|
||||
// 3 月任务拉起抽奖
|
||||
source:1,
|
||||
background:{
|
||||
background:'transparent'
|
||||
},
|
||||
//红包余额
|
||||
totalMoney:0,
|
||||
//抽奖结果
|
||||
result:'',
|
||||
// 开启调试模式
|
||||
isDev: true,
|
||||
option: {},
|
||||
// 以下是转盘配置相关数据
|
||||
lotteryConfig: {
|
||||
// 抽奖转盘的整体尺寸,单位rpx
|
||||
lotterySize: 600,
|
||||
// 抽奖按钮的尺寸,单位rpx
|
||||
actionSize: 200
|
||||
},
|
||||
selfTime:2000,
|
||||
// 以下是转盘 UI 配置
|
||||
// 转盘外环图,如有需要,请参考替换为自己的设计稿
|
||||
lotteryBg: require('@/uni_modules/almost-lottery/static/almost-lottery/almost-lottery__bg2x.png'),
|
||||
// 抽奖按钮图
|
||||
actionBg: require('@/uni_modules/almost-lottery/static/almost-lottery/almost-lottery__action2x.png'),
|
||||
|
||||
// 以下是奖品配置数据
|
||||
// 奖品数据
|
||||
prizeList: [],
|
||||
// 奖品是否设有库存
|
||||
onStock: true,
|
||||
// 中奖下标
|
||||
prizeIndex: -1,
|
||||
|
||||
// 是否正在抽奖中,避免重复触发
|
||||
prizeing: false,
|
||||
|
||||
// 以下为中奖概率有关数据
|
||||
// 是否由前端控制概率,默认不开启,强烈建议由后端控制
|
||||
onFrontend: false,
|
||||
// 权重随机数的最大值
|
||||
prizeWeightMax: 0,
|
||||
// 权重数组
|
||||
prizeWeightArr: [],
|
||||
|
||||
// 以下为业务需求有关示例数据
|
||||
// 金币余额
|
||||
goldCoin: 20,
|
||||
// 当日免费抽奖次数余额
|
||||
freeNum: 0,
|
||||
// 每次消耗的金币数
|
||||
goldNum: 20,
|
||||
// 每天免费抽奖次数
|
||||
freeNumDay: 0
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isApple() {
|
||||
return uni.getSystemInfoSync().platform === 'ios'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
lingquClose(key){
|
||||
console.log('lingquClose');
|
||||
console.log(key);
|
||||
if(key&&key=='isBindAliPay'){
|
||||
uni.navigateTo({
|
||||
url:'/me/invite/zhifubao'
|
||||
})
|
||||
}
|
||||
},
|
||||
toRed(){
|
||||
uni.navigateTo({
|
||||
url: '/me/invite/cashDetail'
|
||||
})
|
||||
|
||||
},
|
||||
toGift() {
|
||||
console.log('1');
|
||||
|
||||
uni.navigateTo({
|
||||
url: '/me/gift/gift?source='+this.source
|
||||
})
|
||||
},
|
||||
// 重新生成
|
||||
handleInitCanvas() {
|
||||
clearCacheFile()
|
||||
clearStore()
|
||||
|
||||
this.prizeList = []
|
||||
this.getPrizeList()
|
||||
},
|
||||
// 通过 popup 打开
|
||||
handleCheckPopup() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/popup/popup'
|
||||
})
|
||||
},
|
||||
// 获取奖品列表
|
||||
async getPrizeList() {
|
||||
uni.showLoading({
|
||||
title: '奖品准备中...'
|
||||
})
|
||||
|
||||
// 等待接口返回的数据进一步处理
|
||||
let res = await this.requestApiGetPrizeList()
|
||||
console.log('获取奖品列表', res)
|
||||
|
||||
if (res.ok) {
|
||||
let data = res.data
|
||||
if (data.length) {
|
||||
this.prizeList = data
|
||||
console.log('已获取到奖品列表数据,开始绘制抽奖转盘')
|
||||
|
||||
// 计算开始绘制的时间
|
||||
if (console.time) {
|
||||
console.time('绘制转盘用时')
|
||||
}
|
||||
|
||||
// 如果开启了前端控制概率
|
||||
// 得出权重的最大值并生成权重数组
|
||||
if (this.onFrontend) {
|
||||
// 生成权重数组并排序取得最大值
|
||||
this.prizeWeightArr = this.prizeList.map(item => item.prizeWeight)
|
||||
let prizeWeightArrSort = [...this.prizeWeightArr]
|
||||
prizeWeightArrSort.sort((a, b) => b - a)
|
||||
|
||||
// 开放自定义权重最大值,没有自定义则取权重数组中的最大值
|
||||
this.prizeWeightMax = this.prizeWeightMax > 0 ? this.prizeWeightMax : prizeWeightArrSort[0]
|
||||
}
|
||||
}
|
||||
} else {
|
||||
uni.hideLoading()
|
||||
uni.showToast({
|
||||
title: '获取奖品失败',
|
||||
mask: true,
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
},
|
||||
// 模拟请求 获取奖品列表 接口,
|
||||
// 注意这里返回的是一个 Promise
|
||||
// 大哥,这里只是模拟,别告诉我你不会对接自己的接口
|
||||
async requestApiGetPrizeList() {
|
||||
const res = await this.$Request.getT('/app/discSpinning/selectDiscSpinning',{source:this.source})
|
||||
if (res.code == 0) {
|
||||
return {
|
||||
ok: true,
|
||||
data: res.data.records.map(v => {
|
||||
return {
|
||||
...v,
|
||||
prizeId: v.id,
|
||||
prizeName: v.name,
|
||||
prizeStock: 10,
|
||||
prizeWeight: 200,
|
||||
prizeImage: v.url,
|
||||
// prizeImage: require('@/static/git.png')
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
return
|
||||
// return new Promise((resolve, reject) => {
|
||||
// let requestTimer = setTimeout(() => {
|
||||
// clearTimeout(requestTimer)
|
||||
// requestTimer = null
|
||||
|
||||
// // prizeStock 奖品库存
|
||||
// // prizeWeight 中奖概率,数值越大中奖概率越高,权重一样时随机中奖
|
||||
// resolve({
|
||||
// ok: true,
|
||||
// data: [{
|
||||
// prizeId: 1,
|
||||
// prizeName: '0.1元现金',
|
||||
// prizeStock: 10,
|
||||
// prizeWeight: 200,
|
||||
// prizeImage: require('@/static/git.png')
|
||||
// },
|
||||
// {
|
||||
// prizeId: 2,
|
||||
// prizeName: '10元现金',
|
||||
// prizeStock: 0,
|
||||
// prizeWeight: 50,
|
||||
// prizeImage: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/56f085e0-bcfe-11ea-b244-a9f5e5565f30.png'
|
||||
// },
|
||||
// {
|
||||
// prizeId: 3,
|
||||
// prizeName: '5元话费',
|
||||
// prizeStock: 1,
|
||||
// prizeWeight: 80
|
||||
// },
|
||||
// {
|
||||
// prizeId: 4,
|
||||
// prizeName: '50元现金',
|
||||
// prizeStock: 0,
|
||||
// prizeWeight: 10,
|
||||
// prizeImage: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAB2klEQVRIia3Wv09TURjG8U+u2kQZcNENh2ok0cnJ0R+L0RB2g/EvwITEwRgnV0Zx0fAHYBh0khBD4sBAmAgDiwQNg4qwmSBDAYf7Fi+n97al9UlObnvO836f3tO355b2GsAYZrCBPRzGdSPmx8J3YtXwDDsB7TR2wl/rNmAYK13C07ES9W11E9s9BjTHdnBKVf8PAcWgehpwCssF0w/5FzqLgw7AA7zDQ/wqzC8H90jjSeFMYW0Yr8PzALfjOh7z1wve2YTzpLlQw2ay+KZ1N7vS24SziVqGexhKzB07pEJXk/dDwTetdZ9HewwZLWFNw2oyudZjQFNrCW8109pqS32GpPX1TOu586fPkLR+IEMjmbzYZ0ha34Atx/fwW58hXxPeFixo7Yg7PQbcKmEtZFgsMb/C4AkDBuUnQKpFuFZI3cZuvP6C+8g6wDP572O95C4Og49/W/YJl/G5YPqO9yV3dh4f8LMCfhjcI93Afix8xAX5SVx2YBY10yagEdxjmiwY7uISXuIFrlSEPG0TMllWcAbzYViXd0rzeXC6ImSiImA+eKU6h7mCeV/eCBMnCJkLzpHSztnFCJ7L//ZkOFv1iRLtRd1IcLpSHVP4jccVnkexPqXkmd7UX15b7tiz29ReAAAAAElFTkSuQmCC'
|
||||
// },
|
||||
// {
|
||||
// prizeId: 5,
|
||||
// prizeName: '1卷抽纸',
|
||||
// prizeStock: 3,
|
||||
// prizeWeight: 3000,
|
||||
// prizeImage: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABCElEQVRoge3YMa4BURSH8Y8o7UAp0WgkotBZwluAfhqlZSgUGr23ENUUCpppJnTswAIUSCaTiziZJ8d9/193zdzrfMltABF5plb+oLscDoAV0Pn8OC/lwDhL0k35QT3wstcIuM61Cj0IhXiNuAvOFwr5SgrxRiHeKMSbhnHfAVgU1i1gajhnBpwK6wnQtgxkDTlmSTq/L7rLYQ9byG+WpLvCOT8YQ6K5WgrxRiHeKMQbhXijEG8U4o1CvIkmxPrDquwMrI37KlFJSJake2BUxVlW0VytaEKsV6t5+8Ohak3rRmtIH9hav/QvRHO1FOKNQrwJheQfn+I9wflCIeNHLzuQc51PRP6rC1ZeIm1I8cC5AAAAAElFTkSuQmCC'
|
||||
// },
|
||||
// {
|
||||
// prizeId: 6,
|
||||
// prizeName: '0.2元现金',
|
||||
// prizeStock: 8,
|
||||
// prizeWeight: 120
|
||||
// },
|
||||
// {
|
||||
// prizeId: 7,
|
||||
// prizeName: '谢谢参与',
|
||||
// prizeStock: 100,
|
||||
// prizeWeight: 10000
|
||||
// },
|
||||
// {
|
||||
// prizeId: 8,
|
||||
// prizeName: '100金币',
|
||||
// prizeStock: 100,
|
||||
// prizeWeight: 3000
|
||||
// }
|
||||
// ]
|
||||
// })
|
||||
// }, 200)
|
||||
// })
|
||||
},
|
||||
// 抽奖开始之前
|
||||
async handleDrawBefore(callback) {
|
||||
|
||||
console.log('抽奖开始之前')
|
||||
let flag = false
|
||||
|
||||
// 还有免费数次
|
||||
if (this.freeNum > 0) {
|
||||
flag = true
|
||||
} else {
|
||||
flag = false
|
||||
uni.showToast({
|
||||
title: '抽奖次数不足',
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
|
||||
callback(flag)
|
||||
},
|
||||
// 本次抽奖开始
|
||||
handleDrawStart() {
|
||||
console.log('触发抽奖按钮')
|
||||
if (this.prizeing) return
|
||||
this.prizeing = true
|
||||
this.tryLotteryDraw()
|
||||
},
|
||||
// 尝试发起抽奖
|
||||
tryLotteryDraw() {
|
||||
console.log('旋转开始,获取中奖下标......')
|
||||
// 判断是否由前端控制概率
|
||||
if (this.onFrontend) {
|
||||
this.localGetPrizeIndex()
|
||||
} else {
|
||||
this.remoteGetPrizeIndex()
|
||||
}
|
||||
},
|
||||
// 本地获取中奖下标
|
||||
localGetPrizeIndex() {
|
||||
console.warn('###当前处于前端控制中奖概率,安全起见,强烈建议由后端控制###')
|
||||
// 前端控制概率的情况下,需要拿到最接近随机权重且大于随机权重的值
|
||||
// 后端控制概率的情况下,通常会直接返回 prizeId
|
||||
if (!this.prizeWeightMax || !this.prizeWeightArr.length) {
|
||||
console.warn('###当前已开启前端控制中奖概率,但是奖品数据列表中的 prizeWeight 参数似乎配置不正确###')
|
||||
return
|
||||
}
|
||||
console.log('当前权重最大值为 =>', this.prizeWeightMax)
|
||||
|
||||
// 注意这里使用了 Math.ceil,如果某个权重的值为 0,则始终无法中奖
|
||||
let randomWeight = Math.ceil(Math.random() * this.prizeWeightMax)
|
||||
console.log('本次权重随机数 =>', randomWeight)
|
||||
|
||||
// 生成大于等于随机权重的数组
|
||||
let tempMaxArrs = []
|
||||
this.prizeList.forEach((item) => {
|
||||
if (item.prizeWeight >= randomWeight) {
|
||||
tempMaxArrs.push(item.prizeWeight)
|
||||
}
|
||||
})
|
||||
console.log('tempMaxArrs', tempMaxArrs)
|
||||
|
||||
// 如果大于随机权重的数组有值,先对这个数组排序然后取值
|
||||
// 反之新建一个临时的包含所有权重的已排序数组,然后取值
|
||||
let tempMaxArrsLen = tempMaxArrs.length
|
||||
if (tempMaxArrsLen) {
|
||||
tempMaxArrs.sort((a, b) => a - b)
|
||||
// 取值时,如果存在多个值,分两种情况
|
||||
if (tempMaxArrsLen > 1) {
|
||||
// 检查是否存在重复的值
|
||||
let sameCount = 0
|
||||
for (let i = 0; i < tempMaxArrs.length; i++) {
|
||||
if (tempMaxArrs[i] === tempMaxArrs[0]) {
|
||||
sameCount++
|
||||
}
|
||||
}
|
||||
|
||||
// 值不相等的情况下取最接近的值,也就是第1个值
|
||||
if (sameCount === 1) {
|
||||
this.prizeIndex = this.prizeWeightArr.indexOf(tempMaxArrs[0])
|
||||
} else {
|
||||
// 存在值相等时,随机取值,当然这里你可以自己决定是否随机取值
|
||||
let sameWeight = tempMaxArrs[0]
|
||||
let sameWeightArr = []
|
||||
let sameWeightItem = {}
|
||||
this.prizeWeightArr.forEach((item, index) => {
|
||||
if (item === sameWeight) {
|
||||
sameWeightArr.push({
|
||||
prizeWeight: item,
|
||||
index
|
||||
})
|
||||
}
|
||||
})
|
||||
console.log('sameWeightArr', sameWeightArr)
|
||||
sameWeightItem = sameWeightArr[Math.floor(Math.random() * sameWeightArr.length)]
|
||||
console.log('sameWeightItem', sameWeightItem)
|
||||
this.prizeIndex = sameWeightItem.index
|
||||
}
|
||||
} else {
|
||||
this.prizeIndex = this.prizeWeightArr.indexOf(tempMaxArrs[0])
|
||||
}
|
||||
}
|
||||
|
||||
console.log('本次抽中奖品 =>', this.prizeList[this.prizeIndex].prizeName)
|
||||
|
||||
// 如果奖品设有库存
|
||||
if (this.onStock) {
|
||||
console.log('本次奖品库存 =>', this.prizeList[this.prizeIndex].prizeStock)
|
||||
}
|
||||
},
|
||||
// 远程请求接口获取中奖下标
|
||||
// 大哥,这里只是模拟,别告诉我你不会对接自己的接口
|
||||
async remoteGetPrizeIndex() {
|
||||
this.result=''
|
||||
console.warn('###当前处于模拟的请求接口,并返回了中奖信息###')
|
||||
const res = await this.$Request.getT('app/discSpinning/draw',{source:this.source})
|
||||
// this.getCount()
|
||||
console.log(res);
|
||||
if (res.code != 0) {
|
||||
this.prizeing = false
|
||||
return uni.showToast({
|
||||
title: res.msg||'请求抽奖失败',
|
||||
icon:'none'
|
||||
})
|
||||
}
|
||||
this.freeNum--
|
||||
this.result=res.data
|
||||
|
||||
let list = [...this.prizeList]
|
||||
// 这里随机产生的 prizeId 是模拟后端返回的 prizeId
|
||||
const arr=list.filter(v=>v.type==res.data.type&&res.data.name==v.name)
|
||||
let prizeId = arr[0].prizeId
|
||||
this.result={...this.result,url:arr[0].url}
|
||||
// 拿到后端返回的 prizeId 后,开始循环比对得出那个中奖的数据
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
let item = list[i]
|
||||
if (item.prizeId === prizeId) {
|
||||
// 中奖下标
|
||||
this.prizeIndex = i
|
||||
break
|
||||
}
|
||||
}
|
||||
console.log('本次抽中奖品 =>', this.prizeList[this.prizeIndex].prizeName)
|
||||
},
|
||||
// 本次抽奖结束
|
||||
handleDrawEnd() {
|
||||
console.log('旋转结束,执行拿到结果后到逻辑')
|
||||
// 旋转结束后,开始处理拿到结果后的逻辑
|
||||
// const prize = this.prizeList[this.prizeIndex]
|
||||
const prize = this.result
|
||||
let {name} = prize
|
||||
let tipContent = ''
|
||||
|
||||
if (name.type ==1) {
|
||||
tipContent = '很遗憾,没有中奖,请再接再厉!'
|
||||
uni.showToast({
|
||||
title: tipContent,
|
||||
icon: "none"
|
||||
})
|
||||
} else {
|
||||
tipContent = `恭喜您,获得 ${name}${this.result.type==2?(this.result.number+'元'):''} !`
|
||||
this.showLingPop({...this.result})
|
||||
const cacheData={...this.result}
|
||||
// setTimeout(()=>{
|
||||
// this.$Request.postJson('app/discSpinning/receive',cacheData )
|
||||
// },1000)
|
||||
}
|
||||
console.log(this.result);
|
||||
this.result=''
|
||||
this.prizeing = false
|
||||
},
|
||||
// 抽奖转盘绘制完成
|
||||
handleDrawFinish(res) {
|
||||
console.log('抽奖转盘绘制完成', res)
|
||||
|
||||
if (res.ok) {
|
||||
// 计算结束绘制的时间
|
||||
if (console.timeEnd) {
|
||||
console.timeEnd('绘制转盘用时')
|
||||
}
|
||||
}
|
||||
|
||||
let stoTimer = setTimeout(() => {
|
||||
stoTimer = null
|
||||
|
||||
uni.hideLoading()
|
||||
// uni.showToast({
|
||||
// title: res.msg,
|
||||
// mask: true,
|
||||
// icon: 'none'
|
||||
// })
|
||||
}, 50)
|
||||
},
|
||||
async getRedPack(){
|
||||
const res=await this.$Request.getT('app/moneyDetails/selectUserMoney')
|
||||
if(res.code==0){
|
||||
this.totalMoney=res.data.amount
|
||||
}
|
||||
},
|
||||
async getCount(){
|
||||
const res=await this.$Request.getT('app/discSpinning/drawCount',{source:this.source})
|
||||
if(res.code==0){
|
||||
this.freeNum=res.count||0
|
||||
this.freeNumDay=res.sum||0
|
||||
}
|
||||
},
|
||||
lingquClose(){
|
||||
// this.getCount()
|
||||
this.getRedPack()
|
||||
},
|
||||
showLingPop(data){
|
||||
console.log(data);
|
||||
this.$refs.refLingqu.open(data)
|
||||
}
|
||||
},
|
||||
onLoad(opt) {
|
||||
this.option = opt
|
||||
if(opt.source){
|
||||
this.source=opt.source
|
||||
}
|
||||
this.prizeList = []
|
||||
this.getCount()
|
||||
this.getPrizeList()
|
||||
},
|
||||
onShow() {
|
||||
this.getRedPack()
|
||||
},
|
||||
onUnload() {
|
||||
uni.hideLoading()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.min-page{
|
||||
min-height: 100vh;
|
||||
}
|
||||
.btn-group {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 2;
|
||||
top: 180px;
|
||||
gap: 20rpx;
|
||||
padding: 0 32rpx;
|
||||
}
|
||||
|
||||
.almost-lottery {
|
||||
flex: 1;
|
||||
background-color: #FF893F;
|
||||
}
|
||||
|
||||
.almost-lottery__head {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 460rpx;
|
||||
background: url('~static/images/lottery/top-bg.png') no-repeat center center/cover;
|
||||
|
||||
.action {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
height: 88rpx;
|
||||
line-height: 88rpx;
|
||||
margin: 0 auto;
|
||||
color: #FFFFFF;
|
||||
font-size: 32rpx;
|
||||
background-color: rgba(255, 136, 61, 1);
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
.action-shadow {
|
||||
box-shadow: 0px 14rpx 0px 0px rgba(235, 112, 36, 1);
|
||||
}
|
||||
|
||||
.pack {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
margin-right: 10rpx;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: contain;
|
||||
background-image: url("~static/red-pack.png");
|
||||
}
|
||||
|
||||
.gift {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
margin-right: 10rpx;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: contain;
|
||||
background-image: url("~static/gift.png");
|
||||
}
|
||||
|
||||
|
||||
.num {
|
||||
color: #F9FC31;
|
||||
}
|
||||
|
||||
.tip {
|
||||
position: relative;
|
||||
top: 428rpx;
|
||||
color: #FFFFFF;
|
||||
font-size: 24rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.almost-lottery__wheel {
|
||||
text-align: center;
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
margin-top: -10rpx;
|
||||
.almost-lottery__count {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
padding: 20rpx 0 40rpx 0;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: #FFFFFF;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.almost-lottery__rule {
|
||||
padding: 0 28rpx;
|
||||
color: #FFF8CB;
|
||||
|
||||
.rule-head {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
margin: 40rpx 0;
|
||||
|
||||
.line {
|
||||
flex: 1;
|
||||
height: 1px;
|
||||
background-color: #FFF3A5;
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 280rpx;
|
||||
color: #F63857;
|
||||
line-height: 70rpx;
|
||||
text-align: center;
|
||||
margin: 0 20rpx;
|
||||
border-radius: 8rpx;
|
||||
background-image: linear-gradient(0deg, rgba(255, 242, 158, 1), rgba(255, 244, 168, 1));
|
||||
}
|
||||
}
|
||||
|
||||
.rule-body {
|
||||
color: #FFF8CB;
|
||||
font-size: 24rpx;
|
||||
padding: 10rpx 0 40rpx;
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.number {
|
||||
position: relative;
|
||||
top: 4rpx;
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
line-height: 28rpx;
|
||||
text-align: center;
|
||||
color: #F63857;
|
||||
background: #FFF8CB;
|
||||
border-radius: 50%;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.text {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.item-rule .text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.almost-lottery__action-dev {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 400rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 10rpx;
|
||||
text-align: center;
|
||||
background-color: red;
|
||||
margin: 0 auto 40rpx;
|
||||
|
||||
.text {
|
||||
color: #FFFFFF;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.almost-lottery__popup-wrap {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.almost-lottery {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -47,8 +47,8 @@
|
|||
limit: this.limit,
|
||||
}
|
||||
this.$u.api.collectList(data).then(res => {
|
||||
if(res.code == 0) {
|
||||
if( this.page == 1) {
|
||||
if(res.code === 0) {
|
||||
if( this.page === 1) {
|
||||
this.collectList = res.data.records
|
||||
uni.stopPullDownRefresh();
|
||||
return
|
||||
|
|
|
|||
|
|
@ -1,18 +1,25 @@
|
|||
<template>
|
||||
<view style="background: #FFFFFF;">
|
||||
<canvas v-if="!tempFilePath" :canvas-id="CanvasID"
|
||||
:style="{ width: canvasW + 'px', height: canvasH + 'px' }"></canvas>
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<image v-else lazy-load :src="tempFilePath" mode="widthFix" style="width: 100%;" class="is-response"
|
||||
@longpress="saveqrcode"></image>
|
||||
<!-- <button v-if="openSettingBtnHidden" class="purple_btn btn_box" hover-class="none" open-type="openSetting"
|
||||
@opensetting='handleSetting'>请开启保存权限</button> -->
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<image v-else lazy-load :src="tempFilePath" mode="widthFix" style="width: 100%;" class="is-response"
|
||||
@longpress="toSave(tempFilePath)"></image>
|
||||
<!-- #endif -->
|
||||
<view>
|
||||
<view class="u-flex " >
|
||||
<canvas v-if="!tempFilePath" :canvas-id="CanvasID"
|
||||
:style="{ width: canvasW + 'px', height: canvasH + 'px' }"></canvas>
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<image v-else lazy-load :src="tempFilePath" mode="widthFix" style="width: 100%;" class="is-response"
|
||||
@longpress="saveqrcode" crossorigin="Anonymous"></image>
|
||||
<!-- <button v-if="openSettingBtnHidden" class="purple_btn btn_box" hover-class="none" open-type="openSetting"
|
||||
@opensetting='handleSetting'>请开启保存权限</button> -->
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<image v-else lazy-load :src="tempFilePath" mode="widthFix" style="width: 100%;" class="is-response"
|
||||
@longpress="toSave(tempFilePath)" crossorigin="Anonymous"></image>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
<view class="u-flex bg-fff u-flex" >
|
||||
<button class="purple_btn btn_box" hover-class="none" open-type="openSetting"
|
||||
@click.stop="toSave(tempFilePath)">保存海报</button>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
@ -151,6 +158,7 @@
|
|||
let _QrCode = await _this.getImageInfo({
|
||||
imgSrc: _this.QrSrc
|
||||
}); //二维码或太阳码
|
||||
console.log(_imgInfo)
|
||||
let r = [_imgInfo.width, _imgInfo.height];
|
||||
let q = [_QrCode.width, _QrCode.height];
|
||||
let imgW = C_W - (C_P * 2.5);
|
||||
|
|
@ -163,7 +171,7 @@
|
|||
q[0] = C_Q;
|
||||
}
|
||||
_this.canvasW = C_W;
|
||||
_this.canvasH = r[1] + q[1] + 25;
|
||||
_this.canvasH = r[1];
|
||||
_this.ctx.setFillStyle(_this.CanvasBg); //canvas背景颜色
|
||||
_this.ctx.fillRect(0, 0, C_W, _this.canvasH); //canvas画布大小
|
||||
|
||||
|
|
@ -182,7 +190,7 @@
|
|||
_this.ctx.setFontSize(uni.upx2px(36)); //设置标题字体大小
|
||||
_this.Title = _this.Title.substring(0, 20)
|
||||
//#endif
|
||||
_this.ctx.setFillStyle(_this.TitleColor); //设置标题文本颜色
|
||||
// _this.ctx.setFillStyle(_this.TitleColor); //设置标题文本颜色
|
||||
let _strLastIndex = 0; //每次开始截取的字符串的索引
|
||||
let _strHeight = r[1] + C_P * 2 + 10; //绘制字体距离canvas顶部的初始高度
|
||||
let _num = 1;
|
||||
|
|
@ -229,7 +237,7 @@
|
|||
// _this.ctx.setFontSize(uni.upx2px(24));
|
||||
// _this.ctx.fillText(_this.OriginalTxt, _strlineW, _strHeight); //商品原价
|
||||
// }
|
||||
// #endif
|
||||
//// #endif
|
||||
_this.ctx.strokeStyle = _this.OriginalColor;
|
||||
_this.ctx.moveTo(_strlineW, _strHeight - uni.upx2px(10)); //起点
|
||||
_this.ctx.lineTo(_strlineW + _this.ctx.measureText(_this.OriginalTxt).width, _strHeight - uni.upx2px(
|
||||
|
|
@ -239,22 +247,18 @@
|
|||
|
||||
//添加二维码
|
||||
_strHeight += uni.upx2px(20);
|
||||
let toTop = uni.upx2px(20);
|
||||
// _this.ctx.drawImage(_QrCode.path, r[0] - q[0] + C_P, _strHeight, q[0], q[1]);
|
||||
_this.ctx.drawImage(_QrCode.path, r[0] - q[0] + C_P - uni.upx2px(20), _this.canvasH - q[1] - toTop, q[
|
||||
0], q[1]);
|
||||
let toTop = uni.upx2px(103);
|
||||
_this.ctx.drawImage(_QrCode.path, r[0] - q[0] + C_P - uni.upx2px(201), _this.canvasH - q[1] - toTop,
|
||||
69, 69);
|
||||
//添加二维码 end
|
||||
|
||||
//添加推荐人与描述
|
||||
_this.ctx.setFillStyle(_this.TitleColor);
|
||||
_this.ctx.setFontSize(uni.upx2px(30));
|
||||
// _this.ctx.fillText(_this.Referrer, C_P, _strHeight + q[1] / 2);
|
||||
_this.ctx.fillText(_this.Referrer, C_P + uni.upx2px(20), _this.canvasH - q[1] - toTop + q[1] / 2);
|
||||
_this.ctx.setFillStyle(_this.OriginalColor);
|
||||
_this.ctx.setFontSize(uni.upx2px(24));
|
||||
// _this.ctx.fillText(_this.ViewDetails, C_P, _strHeight + q[1] / 2 + 20);
|
||||
_this.ctx.fillText(_this.ViewDetails, C_P + uni.upx2px(20), _this.canvasH - q[1] - toTop + q[1] / 2 +
|
||||
20);
|
||||
// _this.ctx.setFillStyle(_this.TitleColor);
|
||||
// _this.ctx.setFontSize(uni.upx2px(30));
|
||||
// _this.ctx.fillText(_this.Referrer, C_P + uni.upx2px(20), _this.canvasH - q[1] - toTop + q[1] / 2);
|
||||
// _this.ctx.setFillStyle(_this.OriginalColor);
|
||||
// _this.ctx.setFontSize(uni.upx2px(24));
|
||||
// _this.ctx.fillText(_this.ViewDetails, C_P + uni.upx2px(20), _this.canvasH - q[1] - toTop + q[1] / 2 + 20);
|
||||
//添加推荐人与描述 end
|
||||
//延迟后渲染至canvas上
|
||||
setTimeout(function() {
|
||||
|
|
@ -269,41 +273,48 @@
|
|||
return new Promise((resolve, errs) => {
|
||||
uni.getImageInfo({
|
||||
src: imgSrc,
|
||||
crossOrigin: 'anonymous',
|
||||
success: function(image) {
|
||||
resolve(image);
|
||||
},
|
||||
fail(err) {
|
||||
errs(err);
|
||||
_this.$queue.showToast('海报生成失败');
|
||||
// _this.$queue.showToast(imgSrc);
|
||||
_this.$queue.showToast('海报生成失败1');
|
||||
uni.hideLoading()
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
getNewImage() {
|
||||
console.log(_this.CanvasID)
|
||||
uni.canvasToTempFilePath({
|
||||
canvasId: _this.CanvasID,
|
||||
quality: 1,
|
||||
complete: res => {
|
||||
// #ifdef H5
|
||||
let ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger') !== -1) {
|
||||
console.log(res)
|
||||
if ( res.tempFilePath) {
|
||||
// #ifdef H5
|
||||
let ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger') !== -1) {
|
||||
_this.tempFilePath = res.tempFilePath;
|
||||
_this.$emit('success', res);
|
||||
} else {
|
||||
_this.$emit('successH5', res.tempFilePath);
|
||||
}
|
||||
// #endif
|
||||
// #ifndef H5
|
||||
_this.tempFilePath = res.tempFilePath;
|
||||
_this.$emit('success', res);
|
||||
} else {
|
||||
_this.$emit('successH5', res.tempFilePath);
|
||||
// #endif
|
||||
_this.loading = false;
|
||||
uni.showToast({
|
||||
title: '长按图片保存海报',
|
||||
duration: 1000,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
// #endif
|
||||
// #ifndef H5
|
||||
_this.tempFilePath = res.tempFilePath;
|
||||
_this.$emit('success', res);
|
||||
// #endif
|
||||
_this.loading = false;
|
||||
uni.showToast({
|
||||
title: '长按图片保存海报',
|
||||
duration: 1000,
|
||||
icon: 'none'
|
||||
});
|
||||
|
||||
uni.hideLoading()
|
||||
}
|
||||
},
|
||||
|
|
@ -318,4 +329,15 @@
|
|||
};
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
<style scoped lang="scss">
|
||||
.btn_box {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
background: rgb(221, 220, 255);
|
||||
border-radius: 0;
|
||||
color: rgb(69, 68, 255);
|
||||
font-size: 28rpx;
|
||||
font-weight: 700;
|
||||
padding: 10rpx 32rpx;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -69,13 +69,13 @@
|
|||
limit: this.limit,
|
||||
}
|
||||
this.$u.api.selectCourse(data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
res.data.list.forEach(ret => {
|
||||
if (ret.avatar) {
|
||||
ret.avatar = ret.avatar.split(',')
|
||||
}
|
||||
})
|
||||
if (this.page == 1) {
|
||||
if (this.page === 1) {
|
||||
this.courseList = res.data.list
|
||||
uni.stopPullDownRefresh();
|
||||
return
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@
|
|||
<list :bounce="false" :loadmoreoffset="wHeight*3" :show-scrollbar="false" ref="listBox" :pagingEnabled="true"
|
||||
:scrollable="true">
|
||||
<cell v-for="(item,i) in videoList" :key="i" :ref="'list'+item.courseDetailsId">
|
||||
<view class="swipers-items" @longpress="openBs()" @appear="appear(item.courseDetailsId,i)"
|
||||
:style="boxStyle">
|
||||
<view class="swipers-items" @longpress="openBs()" @disappear="disappear(item.courseDetailsId,i)"
|
||||
@appear="appear(item.courseDetailsId,i)" :style="boxStyle">
|
||||
<!-- 视频 -->
|
||||
<video :show-fullscreen-btn="false" @controlstoggle="controlstoggles" object-fit="cover"
|
||||
<video :show-fullscreen-btn="false" @controlstoggle="controlstoggles" object-fit="contain"
|
||||
v-if="isShowVideo == item.courseDetailsId && item.videoUrl" :play-strategy="2"
|
||||
:show-loading="true" codec="software" :muted="false" :show-center-play-btn="true" :loop="true"
|
||||
@timeupdate="timeupdate" @play="videoPlay('myVideo'+item.courseDetailsId, item.courseDetailsId)"
|
||||
@ended="ended" :enable-progress-gesture="false" :poster="item.titleImg"
|
||||
:ref="'myVideo'+item.courseDetailsId" :id="'myVideo'+item.courseDetailsId" :src="item.videoUrl"
|
||||
:autoplay="item.autoPlay" class="swipers-items-video"></video>
|
||||
|
|
@ -16,7 +17,8 @@
|
|||
mode="aspectFill">
|
||||
</image>
|
||||
<!-- 返回图标 -->
|
||||
<image src="../static/nvueIcon/backs.png" @click="goBack()" class="swipers-items-back" mode="">
|
||||
<image v-if="showBack" src="../static/nvueIcon/backs.png" @click="goBack()"
|
||||
class="swipers-items-back" mode="">
|
||||
</image>
|
||||
<!-- 右边操作 -->
|
||||
<view class="swipers-items-right" :style="rightTop" v-if="showControls">
|
||||
|
|
@ -131,7 +133,7 @@
|
|||
</view>
|
||||
</uni-popup>
|
||||
<!-- 购买弹窗 -->
|
||||
<uni-popup ref="popupPya" :safe-area="false">
|
||||
<uni-popup ref="popupPya" @change="popupPyaClose" :safe-area="false">
|
||||
<view class="pay">
|
||||
<view class="list-title">
|
||||
<view class="list-title-l">
|
||||
|
|
@ -143,24 +145,40 @@
|
|||
<image class="list-title-rs" src="../../static/images/me/closeIconss.png" mode=""></image>
|
||||
</view>
|
||||
</view>
|
||||
<text class=""
|
||||
style="font-size: 24rpx;color: #999;padding: 0 34rpx;margin: 20rpx 0; auto;text-align: left;width: 100%;">
|
||||
{{getRedEnvelopeTips}}
|
||||
</text>
|
||||
<view class="pay-content">
|
||||
<view class="pay-content-item" @click="payVideo(1)" v-if="zhengbu === '是'">
|
||||
<view class="pay-content-item" v-if="info&&info.price" @click="payVideo(2,'all')">
|
||||
<image class="pay-content-item-icon" src="../../static/images/me/rmIcon.png" mode=""></image>
|
||||
<text class="pay-content-items">
|
||||
{{zongPrice}}金币解锁整部视频
|
||||
{{info.price}}元解锁全剧
|
||||
</text>
|
||||
</view>
|
||||
<view class="pay-content-item" @click="payVideo(2)" v-if="danbu === '是'">
|
||||
<view class="pay-content-item" v-if="info&&info.wholesalePrice" @click="payVideo(2,10)">
|
||||
<image class="pay-content-item-icon" src="../../static/images/me/rmIcon.png" mode=""></image>
|
||||
<text class="pay-content-items">
|
||||
{{countPrice}}金币解锁单集视频
|
||||
{{info.wholesalePrice}}元解锁10集视频
|
||||
</text>
|
||||
</view>
|
||||
<view class="pay-content-item" @click="goNav('/pages/me/vip/index')" v-if="isVips == '是'">
|
||||
<view class="pay-content-item" @click="payVideo(1)">
|
||||
<image class="pay-content-item-icon" src="../../static/images/me/rmIcon.png" mode=""></image>
|
||||
<text class="pay-content-items">
|
||||
{{countPrice*scale}}金币解锁单集视频
|
||||
</text>
|
||||
</view>
|
||||
<view class="pay-content-item" @click="payVideo(2)">
|
||||
<text class="pay-content-items">
|
||||
{{countPrice}}元解锁单集视频
|
||||
</text>
|
||||
</view>
|
||||
<!-- <view class="pay-content-item" @click="goNav('/pages/me/vip/index')" v-if="isVips == '是'">
|
||||
<image class="pay-content-item-icon" src="../../static/images/me/rmIcon.png" mode=""></image>
|
||||
<text class="pay-content-items">
|
||||
开通会员
|
||||
</text>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -176,6 +194,8 @@
|
|||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
|
||||
<!-- 支付弹窗 -->
|
||||
<uni-popup ref="popuppay" :safe-area="false">
|
||||
<view class="popuppay">
|
||||
|
|
@ -188,7 +208,7 @@
|
|||
src="../../static/images/me/closeIconss.png" mode=""></image>
|
||||
</view>
|
||||
<!-- 余额 -->
|
||||
<view class="popuppay-money">
|
||||
<!-- <view class="popuppay-money">
|
||||
<view class="popuppay-money-l">
|
||||
<text class="popuppay-money-l-ye">
|
||||
账号余额:
|
||||
|
|
@ -208,9 +228,9 @@
|
|||
{{payPrice}}金币
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- 充值类型列表 -->
|
||||
<scroll-view scroll-y="true" class="payLists">
|
||||
<!-- <scroll-view scroll-y="true" class="payLists">
|
||||
<view class="popuppay-payList">
|
||||
<view class="payList-item" @click="wallCurr = index" :class="wallCurr == index?'activePrice':''"
|
||||
v-for="(item,index) in wallet" :key="index">
|
||||
|
|
@ -237,7 +257,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</scroll-view> -->
|
||||
<!-- 支付类型 -->
|
||||
<view class="payType">
|
||||
<view class="payType-item" @tap='selectWay(item)' v-for="(item,index) in openLists" :key="index">
|
||||
|
|
@ -291,16 +311,30 @@
|
|||
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<!-- 抽奖弹窗 -->
|
||||
<!-- <uni-popup ref="refPopupZhuanPan" :safe-area="true" background-color="#ffffff">
|
||||
<view case="">
|
||||
111
|
||||
<l-dialer :prizeList="prizeList" @click="onClick" @done="onDone" ref="dialer" />
|
||||
</view>
|
||||
</uni-popup> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let backTimer=null
|
||||
const listDom = uni.requireNativePlugin('dom')
|
||||
import config from '../../common/config.js'
|
||||
import httpsRequest from '../../common/httpRequest.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
//可抽奖次数
|
||||
freeNum: 0,
|
||||
showBack: true,
|
||||
noBuyVideoIndex: null,
|
||||
// 奖品列表,
|
||||
showMoney: true,
|
||||
nowBs: 1, //当前倍速
|
||||
subList: [{
|
||||
|
|
@ -324,7 +358,7 @@
|
|||
haibaoShow: false,
|
||||
title: '',
|
||||
imgSrc: '',
|
||||
current: 0,
|
||||
current: 2,
|
||||
maskCustomStyle: {
|
||||
background: 'rgba(0, 0, 0, 0.5)'
|
||||
},
|
||||
|
|
@ -338,7 +372,7 @@
|
|||
num: 1, //当前播放的集数
|
||||
showPay: false, //购买视频的弹窗
|
||||
info: {}, //整部的信息
|
||||
courseDetailsId: '', //详情id
|
||||
courseDetailsId: null, //详情id
|
||||
scrollIntoView: '', //当前播放视频的位置
|
||||
scrollIntoViews: 'video0', //当前播放视频的位置
|
||||
isVips: '否', //是否显示会员
|
||||
|
|
@ -368,6 +402,16 @@
|
|||
'width': '750rpx',
|
||||
},
|
||||
isShowVideo: '',
|
||||
noBuyVideoIndex: null,
|
||||
playFlag: false,
|
||||
getRedEnvelopeTips: '',
|
||||
scale: 1,
|
||||
// 防抖使用的变量
|
||||
appearTimeout: null,
|
||||
isOrder: true,
|
||||
isGetDataList: false,
|
||||
dianzanTimer:null,
|
||||
zhuijuTimer:null
|
||||
};
|
||||
},
|
||||
onUnload() {
|
||||
|
|
@ -381,13 +425,17 @@
|
|||
if (this.videoContext) {
|
||||
this.videoContext.play()
|
||||
}
|
||||
const noBuyVideoIndex = uni.getStorageSync('noBuyVideoIndex')
|
||||
if (noBuyVideoIndex !== null && noBuyVideoIndex !== undefined) {
|
||||
this.noBuyVideoIndex = noBuyVideoIndex
|
||||
}
|
||||
this.isVips = uni.getStorageSync('isVips') ? uni.getStorageSync('isVips') : '否'
|
||||
let that = this
|
||||
uni.$on('back', (data) => {
|
||||
if (data.flag == true) {
|
||||
that.showPay = false
|
||||
that.getDataList(that.courseId, that.courseDetailsId, true);
|
||||
that.getMyLoveStatus()
|
||||
// that.getMyLoveStatus()
|
||||
that.getMoneyList()
|
||||
that.getMyMoney()
|
||||
}
|
||||
|
|
@ -395,25 +443,28 @@
|
|||
this.moneyTips = uni.getStorageSync('moneyTips')
|
||||
// #ifdef APP-PLUS
|
||||
if (plus.os.name.toLowerCase() === 'android') {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '微信',
|
||||
id: 2
|
||||
}, {
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
}];
|
||||
this.openWay = 2;
|
||||
this.openLists = [
|
||||
// {
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '微信',
|
||||
// id: 2
|
||||
// },
|
||||
{
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
},
|
||||
];
|
||||
this.openWay = 1;
|
||||
let syPaySel = uni.getStorageSync('syPaySel')
|
||||
if (syPaySel === '是') {
|
||||
let openListsItem = {
|
||||
image: '/static/images/pay/shouyi.png',
|
||||
text: '收益余额',
|
||||
id: 4
|
||||
};
|
||||
this.openLists.push(openListsItem)
|
||||
}
|
||||
// if (syPaySel === '是') {
|
||||
// let openListsItem = {
|
||||
// image: '/static/images/pay/shouyi.png',
|
||||
// text: '收益余额',
|
||||
// id: 4
|
||||
// };
|
||||
// this.openLists.push(openListsItem)
|
||||
// }
|
||||
} else {
|
||||
let checkIosPay = uni.getStorageSync('checkIosPay');
|
||||
if (checkIosPay === '是') {
|
||||
|
|
@ -424,31 +475,59 @@
|
|||
}];
|
||||
this.openWay = 3;
|
||||
} else {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '微信',
|
||||
id: 2
|
||||
}, {
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
}];
|
||||
this.openWay = 2;
|
||||
this.openLists = [
|
||||
// {
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '微信',
|
||||
// id: 2
|
||||
// },
|
||||
{
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
},
|
||||
];
|
||||
this.openWay = 1;
|
||||
let syPaySel = uni.getStorageSync('syPaySel')
|
||||
if (syPaySel === '是') {
|
||||
let openListsItem = {
|
||||
image: '/static/images/pay/shouyi.png',
|
||||
text: '收益余额',
|
||||
id: 4
|
||||
};
|
||||
this.openLists.push(openListsItem)
|
||||
}
|
||||
// if (syPaySel === '是') {
|
||||
// let openListsItem = {
|
||||
// image: '/static/images/pay/shouyi.png',
|
||||
// text: '收益余额',
|
||||
// id: 4
|
||||
// };
|
||||
// this.openLists.push(openListsItem)
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
// #endif
|
||||
this.$nextTick(() => {
|
||||
this.closePopusPay()
|
||||
})
|
||||
if (this.courseId) {
|
||||
|
||||
this.getDataList(this.courseId, this.courseDetailsId);
|
||||
}
|
||||
httpsRequest.getT('app/course/getRedEnvelopeTips').then(res => {
|
||||
if (res.code == 0) {
|
||||
this.getRedEnvelopeTips = res.data
|
||||
}
|
||||
})
|
||||
this.getScale()
|
||||
},
|
||||
onBackPress() {
|
||||
console.log('onBackPress')
|
||||
const {
|
||||
courseId,
|
||||
courseDetailsId,
|
||||
videoUrl
|
||||
} = this.videoList[this.current]
|
||||
if (videoUrl) {
|
||||
this.setHistor(courseId, courseDetailsId, true)
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
this.courseDetailsId=e.courseDetailsId
|
||||
//是开启整部购买
|
||||
this.zhengbu = uni.getStorageSync('zhengbu') ? uni.getStorageSync('zhengbu') : '否'
|
||||
//是否开启单集购买
|
||||
|
|
@ -471,28 +550,134 @@
|
|||
// 记录跳转过来的视频总id跟单集id
|
||||
if (e.id) {
|
||||
this.courseId = e.id;
|
||||
if (e.courseDetailsId && e.courseDetailsId != 'null') {
|
||||
this.courseDetailsId = e.courseDetailsId
|
||||
}
|
||||
this.getDataList(this.courseId, this.courseDetailsId);
|
||||
this.getMyLoveStatus()
|
||||
|
||||
// this.getMyLoveStatus()
|
||||
this.getMoneyList()
|
||||
this.getMyMoney()
|
||||
} else {
|
||||
console.log("allId=====" + e.allId)
|
||||
if (e.allId) {
|
||||
const arr = e.allId.split('-')
|
||||
this.courseId = arr[0];
|
||||
|
||||
// this.getMyLoveStatus()
|
||||
this.getMoneyList()
|
||||
this.getMyMoney()
|
||||
}
|
||||
}
|
||||
|
||||
if (document.documentElement.scrollHeight <= document.documentElement.clientHeight) {
|
||||
bodyTag = document.getElementsByTagName('body')[0];
|
||||
bodyTag.style.height = document.documentElement.clientWidth / screen.width * screen.height + 'px';
|
||||
}
|
||||
|
||||
},
|
||||
onHide() {
|
||||
console.log('onHide')
|
||||
clearTimeout(backTimer)
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 获取金币比例
|
||||
*/
|
||||
getScale() {
|
||||
httpsRequest.getT("app/common/type/914", {}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.scale = Number(res.data.value)
|
||||
}
|
||||
});
|
||||
},
|
||||
//播放时的回掉
|
||||
videoPlay(videoId, courseDetailsId) {
|
||||
if (!this.playFlag) {
|
||||
this.playFlag = true
|
||||
if (this.isGetDataList) {
|
||||
this.getDataList(this.courseId, courseDetailsId, true);
|
||||
}
|
||||
this.isGetDataList = true;
|
||||
httpsRequest.getT('app/course/viewCourse', {
|
||||
courseId: this.courseId,
|
||||
courseDetailsId: courseDetailsId,
|
||||
type: 'start'
|
||||
}).then(res => {
|
||||
console.log('播放开始')
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
//播放进度变化回掉
|
||||
timeupdate(e) {
|
||||
// console.log(this.courseDetailsId)
|
||||
if (e.detail.currentTime > e.detail.duration * 0.9) {
|
||||
if (this.playFlag) {
|
||||
this.playFlag = false
|
||||
httpsRequest.getT('app/course/viewCourse', {
|
||||
courseId: this.courseId,
|
||||
courseDetailsId: this.videoList[this.current].courseDetailsId,
|
||||
type: 'end'
|
||||
}).then(res => {
|
||||
console.log('播放结束')
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
appear(e, index) {
|
||||
this.current = index
|
||||
this.showControls = true
|
||||
this.isShowVideo = e
|
||||
this.scrollIntoViews = 'video' + index
|
||||
this.scrollIntoView = 'video' + index
|
||||
console.log(this.scrollIntoViews, '当前位置')
|
||||
//播放并更新video的上下文
|
||||
this.startPlay(index)
|
||||
//插入历史记录
|
||||
this.setHistor(this.videoList[index].courseId, this.videoList[index].courseDetailsId);
|
||||
this.$forceUpdate()
|
||||
this.playFlag = false
|
||||
this.courseDetailsId = e;
|
||||
// 清除已经设置的定时器
|
||||
clearTimeout(this.appearTimeout);
|
||||
|
||||
// 设置一个新的延迟执行的定时器
|
||||
this.appearTimeout = setTimeout(() => {
|
||||
// 实际要执行的操作
|
||||
console.log('页面出现在视图中');
|
||||
// 这里可以加入你需要执行的代码
|
||||
console.log("appear===" + e)
|
||||
console.log("appear===" + index)
|
||||
// this.courseDetailsId = e
|
||||
console.log(e)
|
||||
this.current = index
|
||||
this.showControls = true
|
||||
this.isShowVideo = e
|
||||
this.scrollIntoViews = 'video' + index
|
||||
this.scrollIntoView = 'video' + index
|
||||
console.log(this.scrollIntoViews, '当前位置')
|
||||
this.getDataList(this.courseId, this.videoList[this.current].courseDetailsId);
|
||||
//播放并更新video的上下文
|
||||
this.startPlay(index)
|
||||
//插入历史记录
|
||||
this.setHistor(this.videoList[index].courseId, this.videoList[index].courseDetailsId);
|
||||
this.$forceUpdate()
|
||||
}, 500); // 延迟500毫秒执行
|
||||
|
||||
},
|
||||
disappear(e, index) {
|
||||
|
||||
// if (this.videoContext) { //判断之前是否有视频的上下文
|
||||
// this.videoContext.stop();
|
||||
// this.videoContext = null;
|
||||
// }
|
||||
// console.log("disappear==="+index)
|
||||
// if (this.current > index) {
|
||||
// index = index + 1
|
||||
// } else {
|
||||
// index = index - 1
|
||||
// }
|
||||
// let numIdCurr = this.videoList[index].courseDetailsId;
|
||||
// if (this.videoList[index].videoUrl) { //已经购买可直接播放
|
||||
// // 播放时记录当前播放的id
|
||||
// this.appear(numIdCurr, index)
|
||||
// this.videoContextId = 'myVideo' + numIdCurr;
|
||||
// this.videoContext = uni.createVideoContext(this.videoContextId, this);
|
||||
// console.log('走更新了')
|
||||
|
||||
// this.$nextTick(() => {
|
||||
// //播放当前的
|
||||
// this.videoContext.play();
|
||||
// })
|
||||
// }
|
||||
// this.$forceUpdate();
|
||||
},
|
||||
//选集弹窗的回调
|
||||
changeXj(e) {
|
||||
|
|
@ -633,15 +818,37 @@
|
|||
payClassifyId: this.wallet[this.wallCurr].payClassifyId,
|
||||
}).then(ret => {
|
||||
this.isCheckPay(ret.code, 'wxpay', JSON.stringify(ret.data));
|
||||
});
|
||||
})
|
||||
} else if (this.openWay == 1) {
|
||||
let paytype = 'h5'
|
||||
// #ifdef APP
|
||||
paytype = 'app'
|
||||
// #endif
|
||||
// APP支付宝支付
|
||||
httpsRequest.postT("/app/aliPay/payMoney", {
|
||||
classify: 1,
|
||||
payClassifyId: this.wallet[this.wallCurr].payClassifyId,
|
||||
}).then(ret => {
|
||||
console.log(ret)
|
||||
this.isCheckPay(ret.code, 'alipay', ret.data);
|
||||
console.log('nvue payType=' + paytype);
|
||||
httpsRequest.getT("/app/wuyou/payOrder/" + this.ordersId + '?payType=' + paytype, {}).then(ret => {
|
||||
console.log(ret);
|
||||
// plus.runtime.openURL(ret.data.h5Url)
|
||||
if (ret.code == 0) {
|
||||
uni.hideLoading()
|
||||
uni.navigateTo({
|
||||
url: '/pages/pays/pays?ordersId=' + this.ordersId + '&url=' + ret.data
|
||||
.h5Url
|
||||
});
|
||||
} else {
|
||||
uni.hideLoading()
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: res.msg
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/index/webView?ordersId='+this.ordersId+'url=' + ret.data.h5Url
|
||||
// });
|
||||
|
||||
// this.isCheckPay(ret.code, 'wxpay', JSON.stringify(ret.data));
|
||||
});
|
||||
} else if (this.openWay == 3) {
|
||||
let userId = uni.getStorageSync('userId');
|
||||
|
|
@ -768,6 +975,22 @@
|
|||
//打开支付弹窗
|
||||
openPopusPay() {
|
||||
this.$refs.popuppay.open('bottom')
|
||||
return
|
||||
// 通过 id 获取 nvue 子窗体
|
||||
// const subNVue = uni.getSubNVueById('pay')
|
||||
// subNVue.setStyle({
|
||||
// height: '350rpx',
|
||||
// })
|
||||
// // 打开 nvue 子窗体
|
||||
// subNVue.show('slide-in-bottom', 300, function() {
|
||||
// // 打开后进行一些操作...
|
||||
// //
|
||||
// console.log('subnvue open')
|
||||
// });
|
||||
// 关闭 nvue 子窗体
|
||||
// subNVue.hide('fade-out', 300)
|
||||
|
||||
// this.$refs.refPopupZhuanPan.open('bottom')
|
||||
},
|
||||
// 获取收藏状态
|
||||
getMyLoveStatus() {
|
||||
|
|
@ -788,7 +1011,8 @@
|
|||
//显示/隐藏适配控制器的回调
|
||||
controlstoggles(e) {
|
||||
this.showControls = e.detail.show
|
||||
console.log(e.detail.show, '显示/隐藏控制栏')
|
||||
this.showBack = this.showControls
|
||||
// console.log(e.detail.show, '显示/隐藏控制栏')
|
||||
},
|
||||
//打开倍速弹框
|
||||
openBs() {
|
||||
|
|
@ -816,7 +1040,7 @@
|
|||
qdCode = uni.getStorageSync('qdCode')
|
||||
}
|
||||
let url = config.APIHOST2 + '/pages/login/registerApp?invitation=' + invitationCode + '&qdCode=' + qdCode
|
||||
this.setShareNum()
|
||||
// this.setShareNum()
|
||||
uni.setClipboardData({
|
||||
data: url,
|
||||
success(res) {
|
||||
|
|
@ -839,14 +1063,26 @@
|
|||
}
|
||||
|
||||
},
|
||||
popupPyaClose() {
|
||||
this.isOrder = true
|
||||
console.log(this.isOrder)
|
||||
},
|
||||
/**
|
||||
* @param {Object} type 类型
|
||||
* 1:购买整部视频
|
||||
* 2:购买单集视频
|
||||
*/
|
||||
payVideo(type) {
|
||||
payVideo(type, num) {
|
||||
console.log(this.isOrder)
|
||||
if (!this.isOrder) {
|
||||
return;
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '加载中'
|
||||
})
|
||||
this.isOrder = false
|
||||
if (uni.getStorageSync('token')) {
|
||||
this.submitPay(type)
|
||||
this.submitPay(type, num)
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: "/pages/login/login"
|
||||
|
|
@ -854,19 +1090,48 @@
|
|||
}
|
||||
},
|
||||
//使用金币购买
|
||||
submitPay(type) {
|
||||
submitPay(type, num) {
|
||||
let data = {
|
||||
courseId: this.courseId
|
||||
}
|
||||
if (type != 1) { //购买单集
|
||||
if (!num) {
|
||||
console.log('进入num');
|
||||
//单集解锁
|
||||
data.courseDetailsId = this.videoList[this.current].courseDetailsId
|
||||
}
|
||||
httpsRequest.getT('/app/order/insertCourseOrders', data).then(res => {
|
||||
console.log(this.current)
|
||||
console.log(data)
|
||||
this.setHistor()
|
||||
httpsRequest.getT((num && num == 10) ? '/app/order/insertCourseOrders/limit10' :
|
||||
'/app/order/insertCourseOrders', data).then(res => {
|
||||
console.log(res)
|
||||
if (res.code == 0) {
|
||||
this.ordersId = res.data.orders.ordersId //记录订单id
|
||||
this.payMoney = res.data.orders.payMoney //记录订单价格
|
||||
this.payOrder(res.data.orders.ordersId, res.data.orders.payMoney)
|
||||
|
||||
if (res.status && res.status == 1) {
|
||||
uni.hideLoading()
|
||||
this.showPay = false //关闭购买选择弹窗
|
||||
this.isOrder = true
|
||||
this.getDataList(this.courseId, this.videoList[this.current].courseDetailsId,
|
||||
true);
|
||||
return;
|
||||
} else {
|
||||
this.ordersId = res.data.orders.ordersId //记录订单id
|
||||
this.payMoney = res.data.orders.payMoney //记录订单价格
|
||||
if (type == 1) { //金币
|
||||
this.payOrder(res.data.orders.ordersId, res.data.orders.payMoney)
|
||||
} else if (type == 2) { //支付宝
|
||||
uni.hideLoading()
|
||||
this.closePay() //关闭购买选择弹窗
|
||||
this.payPrice = res.data.orders.payMoney //需要支付的价格
|
||||
this.openPopusPay() //显示充值弹窗
|
||||
}
|
||||
|
||||
}
|
||||
console.log(this.isOrder)
|
||||
|
||||
// this.payOrder(res.data.orders.ordersId, res.data.orders.payMoney)
|
||||
} else {
|
||||
this.isOrder = true
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
|
|
@ -876,44 +1141,61 @@
|
|||
},
|
||||
payOrder(orderId, payMoney) {
|
||||
let that = this
|
||||
console.log("orderId==" + orderId)
|
||||
httpsRequest.postT("/app/order/payOrders", {
|
||||
orderId: orderId,
|
||||
}).then(res => {
|
||||
console.log("orderIds==", res)
|
||||
if (res.code == 0) {
|
||||
uni.hideLoading()
|
||||
uni.showToast({
|
||||
title: '已解锁,支付' + payMoney + '金币',
|
||||
title: '已成功解锁',
|
||||
icon: 'none'
|
||||
})
|
||||
this.closePopusPay()
|
||||
this.closePay()
|
||||
that.showPay = false
|
||||
that.showMoney = false
|
||||
that.noBuyVideoIndex = null
|
||||
setTimeout(() => {
|
||||
that.getDataList(that.courseId, that.videoList[that.current].courseDetailsId,
|
||||
true);
|
||||
}, 1000)
|
||||
|
||||
} else { //支付失败(余额不足)
|
||||
that.closePay() //关闭购买选择弹窗
|
||||
this.payPrice = payMoney //需要支付的价格
|
||||
this.openPopusPay() //显示充值弹窗
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
that.showPay = true
|
||||
that.showMoney = false
|
||||
// that.closePay() //关闭购买选择弹窗
|
||||
// this.payPrice = payMoney //需要支付的价格
|
||||
// this.openPopusPay() //显示充值弹窗
|
||||
}
|
||||
this.isOrder = true
|
||||
});
|
||||
},
|
||||
//打开购买弹窗
|
||||
openPay() {
|
||||
//获取总价跟单集价格
|
||||
|
||||
this.zongPrice = this.info.price
|
||||
this.countPrice = this.videoList[this.current].price
|
||||
this.$refs.popupPya.open('bottom')
|
||||
this.noBuyVideoIndex = this.current
|
||||
uni.setStorageSync('noBuyVideoIndex', this.current)
|
||||
},
|
||||
//关闭购买弹窗
|
||||
closePay() {
|
||||
console.log(1)
|
||||
this.$refs.popupPya.close()
|
||||
},
|
||||
//选择播放
|
||||
selectPlay(item) {
|
||||
selectPlay(item, type) {
|
||||
if (this.videoList[this.current].videoUrl == '' && this.videoList[this.current].price <= 0 && !type) {
|
||||
this.getDataList(this.courseId, this.courseDetailsId, true, 'select')
|
||||
return;
|
||||
}
|
||||
//重新计算一下当前观看的是哪个视频
|
||||
this.comNumVideo()
|
||||
//滚动到选择的位置
|
||||
|
|
@ -943,16 +1225,23 @@
|
|||
//收藏
|
||||
shoucang() {
|
||||
if (uni.getStorageSync('token')) {
|
||||
this.isCollect=!this.isCollect
|
||||
let data = {
|
||||
courseId: this.courseId,
|
||||
classify: 1,
|
||||
type: this.isCollect == false ? 1 : 0
|
||||
type: this.isCollect? 1 : 0
|
||||
}
|
||||
httpsRequest.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.getMyLoveStatus()
|
||||
}
|
||||
})
|
||||
clearTimeout(this.zhuijuTimer)
|
||||
this.zhuijuTimer=setTimeout(()=>{
|
||||
clearTimeout(this.zhuijuTimer)
|
||||
this.zhuijuTimer=null;
|
||||
httpsRequest.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
// this.getMyLoveStatus()
|
||||
}
|
||||
})
|
||||
},500)
|
||||
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: "/pages/login/login"
|
||||
|
|
@ -969,17 +1258,23 @@
|
|||
classify: 2,
|
||||
type: item.isGood == 0 ? 1 : 0
|
||||
};
|
||||
httpsRequest.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (data.type == 1) {
|
||||
item.isGood = 1;
|
||||
item.goodNum += 1;
|
||||
} else {
|
||||
item.isGood = 0;
|
||||
item.goodNum -= 1;
|
||||
if (data.type == 1) {
|
||||
item.isGood = 1;
|
||||
item.goodNum += 1;
|
||||
} else {
|
||||
item.isGood = 0;
|
||||
item.goodNum -= 1;
|
||||
}
|
||||
clearTimeout(this.dianzanTimer)
|
||||
this.dianzanTimer = null
|
||||
this.dianzanTimer = setTimeout(() => {
|
||||
httpsRequest.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}, 500)
|
||||
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: "/pages/login/login"
|
||||
|
|
@ -990,9 +1285,9 @@
|
|||
//播放结束后播放下一集
|
||||
ended() {
|
||||
if (this.current < this.videoList.length - 1) {
|
||||
// this.current += 1
|
||||
this.$nextTick(() => {
|
||||
let courseDetailsId = this.videoList[this.current + 1].courseDetailsId
|
||||
this.current += 1
|
||||
let courseDetailsId = this.videoList[this.current].courseDetailsId
|
||||
console.log(courseDetailsId, '开始移动了')
|
||||
const el = this.$refs['list' + courseDetailsId][0]
|
||||
listDom.scrollToElement(el, {})
|
||||
|
|
@ -1016,6 +1311,7 @@
|
|||
this.$nextTick(() => {
|
||||
//播放当前的
|
||||
this.videoContext.play();
|
||||
this.videoContext.playbackRate(this.subList[this.nowBs].num)
|
||||
})
|
||||
} else { //没有视频链接则表示没有权限,需要购买 弹出购买弹窗
|
||||
this.openPay()
|
||||
|
|
@ -1028,36 +1324,65 @@
|
|||
},
|
||||
//滚动到指定位置
|
||||
goListPosition(courseDetailsId) {
|
||||
let _this = this;
|
||||
// this.scrollIntoViews = 'video0'
|
||||
this.$nextTick(() => {
|
||||
// setTimeout(()=>{
|
||||
console.log(courseDetailsId, '开始移动了')
|
||||
const el = this.$refs['list' + courseDetailsId][0]
|
||||
const el = _this.$refs['list' + courseDetailsId][0]
|
||||
listDom.scrollToElement(el, {
|
||||
animated: false
|
||||
})
|
||||
this.$forceUpdate()
|
||||
console.log(el, '移动结束')
|
||||
_this.$forceUpdate()
|
||||
console.log('移动结束', el)
|
||||
// },1000)
|
||||
})
|
||||
},
|
||||
async getCount() {
|
||||
console.log('getCount')
|
||||
const res = await this.$Request.getT('app/discSpinning/drawCount')
|
||||
if (res.code == 0) {
|
||||
this.freeNum = res.count || 0
|
||||
}
|
||||
console.log(res);
|
||||
return res
|
||||
},
|
||||
/**
|
||||
* @param {Number} courseId 总id
|
||||
* @param {Number} courseDetailsId 当前视频id
|
||||
* @param {boolean} type 是购买后返回的还是直接进来的
|
||||
*/
|
||||
getDataList(courseId, courseDetailsId, type) {
|
||||
getDataList(courseId, courseDetailsId, type, t) {
|
||||
let data = {
|
||||
id: courseId,
|
||||
courseId: courseId,
|
||||
token: uni.getStorageSync('token') ? uni.getStorageSync('token') : ''
|
||||
};
|
||||
httpsRequest.getT('/app/course/selectCourseDetailsById', data).then(res => {
|
||||
httpsRequest.getT('/app/course/courseSets', data).then(res => {
|
||||
console.log('getDataList')
|
||||
console.log(res)
|
||||
if(res.code==401){
|
||||
// uni.showToast({
|
||||
// title: '请先登录',
|
||||
// icon: 'none'
|
||||
// })
|
||||
return
|
||||
}
|
||||
if (res.code == 0) {
|
||||
if (res.data.listsDetail) {
|
||||
this.isCollect = res.data.collect ? true : false;
|
||||
courseDetailsId=(courseDetailsId&&courseDetailsId!=='null')?courseDetailsId: res.data.current.courseDetailsId
|
||||
|
||||
this.courseDetailsId = courseDetailsId
|
||||
if (res.data.list) {
|
||||
this.info = res.data;
|
||||
this.title = this.info.title;
|
||||
let arr = JSON.parse(JSON.stringify(res.data.listsDetail));
|
||||
const indexs = arr.findIndex(menu => menu.courseDetailsId ===
|
||||
Number(courseDetailsId));
|
||||
this.current = indexs
|
||||
const arr = res.data.list
|
||||
const indexs = arr.findIndex(v => v.courseDetailsId == (courseDetailsId ?
|
||||
courseDetailsId : res.data.current.courseDetailsId));
|
||||
//如果未找到将current值改为0,否则会导致选集无法弹窗,弹窗后点击相对应集数也无反应
|
||||
this.current = indexs === -1 ? 0 : indexs;
|
||||
this.scrollIntoViews = 'video' + indexs
|
||||
this.scrollIntoView = 'video' + indexs
|
||||
// this.scrollIntoView = 'video' + indexs
|
||||
arr.map((item, index) => {
|
||||
item.num = index + 1;
|
||||
if (item.videoUrl) {
|
||||
|
|
@ -1070,6 +1395,7 @@
|
|||
//菜单数组
|
||||
this.meunList = arr;
|
||||
if (type == true) { //购买视频后返回的
|
||||
console.log('购买视频后返回的')
|
||||
let courseDetailsIds = this.videoList[this.current].courseDetailsId;
|
||||
this.meunList.some((item) => {
|
||||
if (item.courseDetailsId == courseDetailsIds) {
|
||||
|
|
@ -1085,36 +1411,97 @@
|
|||
}
|
||||
})
|
||||
})
|
||||
|
||||
if (this.noBuyVideoIndex !== null && this.videoList[this
|
||||
.noBuyVideoIndex].videoUrl) {
|
||||
this.noBuyVideoIndex = null
|
||||
uni.removeStorageSync('noBuyVideoIndex')
|
||||
this.videoContext.stop()
|
||||
httpsRequest.getT('app/discSpinning/drawCount').then(res => {
|
||||
console.log('转盘抽奖次数')
|
||||
console.log(res)
|
||||
if (res.count >= 1) {
|
||||
uni.navigateTo({
|
||||
url: '/me/choujiang/choujiang'
|
||||
})
|
||||
} else {
|
||||
this.videoContext.play();
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log('播放')
|
||||
this.$nextTick(() => {
|
||||
console.log('myVideo' + courseDetailsIds)
|
||||
this.videoContextId = 'myVideo' + courseDetailsIds;
|
||||
this.videoContext = uni.createVideoContext(this
|
||||
.videoContextId,
|
||||
this);
|
||||
if (this.videoList[this.current].videoUrl) {
|
||||
this.videoContext.play();
|
||||
} else {
|
||||
console.log("播放失败")
|
||||
this.getDataList(this.courseId, courseDetailsIds, true);
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
// console.log('this.noBuyVideoIndex', this.noBuyVideoIndex)
|
||||
|
||||
} else { //直接跳转进来的
|
||||
this.videoList = this.meunList
|
||||
//滚动到记录视频的位置(如果有记录)
|
||||
if (indexs > 0) {
|
||||
console.log(indexs, '有记录吗?')
|
||||
this.goListPosition(this.videoList[indexs].courseDetailsId)
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
let indexss = indexs > 0 ? indexs : 0
|
||||
//滚动到记录视频的位置(如果有记录)
|
||||
if (indexs > 0) {
|
||||
console.log(indexs, '有记录吗?')
|
||||
this.goListPosition(this.videoList[indexs].courseDetailsId)
|
||||
}
|
||||
// console.log('this.noBuyVideoIndex', this.noBuyVideoIndex)
|
||||
|
||||
if (this.videoList[indexss].videoUrl) { //有播放权限
|
||||
console.log('有播放权限进入是否抽取转盘判断')
|
||||
let numIdCurr = this.videoList[indexss].courseDetailsId;
|
||||
this.videoContextId = 'myVideo' + numIdCurr;
|
||||
this.videoContext = uni.createVideoContext(this
|
||||
.videoContextId,
|
||||
this);
|
||||
this.videoContext.play();
|
||||
if (this.noBuyVideoIndex != null && this.videoList[this
|
||||
.noBuyVideoIndex].videoUrl) {
|
||||
this.videoContext.stop();
|
||||
httpsRequest.getT('app/discSpinning/drawCount').then(res => {
|
||||
console.log('转盘抽奖次数')
|
||||
if (res.count >= 1) {
|
||||
uni.navigateTo({
|
||||
url: '/me/choujiang/choujiang'
|
||||
})
|
||||
} else {
|
||||
this.videoContext.play();
|
||||
}
|
||||
})
|
||||
uni.removeStorageSync('noBuyVideoIndex')
|
||||
this.noBuyVideoIndex = null
|
||||
} else {
|
||||
this.videoContext.play();
|
||||
}
|
||||
} else { //没有播放权限打开购买弹窗
|
||||
this.openPay()
|
||||
}
|
||||
this.$forceUpdate();
|
||||
})
|
||||
}
|
||||
|
||||
if (t == 'select') {
|
||||
this.selectPlay(this.videoList[this.current], true)
|
||||
}
|
||||
this.$forceUpdate();
|
||||
}
|
||||
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '加载失败',
|
||||
icon: 'none'
|
||||
})
|
||||
setTimeout(() => {
|
||||
clearTimeout(backTimer)
|
||||
backTimer= setTimeout(() => {
|
||||
uni.navigateBack();
|
||||
}, 1000)
|
||||
}
|
||||
|
|
@ -1130,8 +1517,22 @@
|
|||
})
|
||||
},
|
||||
//插入观看记录
|
||||
setHistor(courseId, courseDetailsId) {
|
||||
setHistor(courseId, courseDetailsId, now) {
|
||||
clearTimeout(this.timer)
|
||||
|
||||
if (uni.getStorageSync('token')) {
|
||||
clearTimeout(this.timer)
|
||||
if (now) {
|
||||
let data = {
|
||||
courseId: courseId,
|
||||
courseDetailsId: courseDetailsId,
|
||||
classify: 3,
|
||||
type: 1
|
||||
};
|
||||
console.log(data, '记录了')
|
||||
httpsRequest.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {})
|
||||
return
|
||||
}
|
||||
let data = {
|
||||
courseId: courseId,
|
||||
courseDetailsId: courseDetailsId,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
<template>
|
||||
<view class="detail">
|
||||
<view class="detail" :style="{paddingBottom:paddingBottom}">
|
||||
<swiper @longpress="openBs()" :circular="true" class="swipers" @change="change" :current="current"
|
||||
:vertical="true" :indicator-dots="false" :autoplay="false" :interval="3000" :duration="300">
|
||||
<swiper-item class="swipers-item" v-for="(item,index) in swiperList" :key="item.courseDetailsId">
|
||||
<view class="swipers-items" v-if="current == index">
|
||||
<!-- 视频 -->
|
||||
<video :show-fullscreen-btn="false" @controlstoggle="controlstoggles" object-fit="cover"
|
||||
<video :show-fullscreen-btn="false" @controlstoggle="controlStoggles" object-fit="contain"
|
||||
v-if="current === index && item.videoUrl" :play-strategy="2" :show-loading="true"
|
||||
codec="software" :muted="false" :show-center-play-btn="true" :loop="true" @ended="ended"
|
||||
@timeupdate="timeupdate" @play="videoPlay('myVideo'+item.courseDetailsId, item.courseDetailsId)"
|
||||
:enable-progress-gesture="false" :poster="item.titleImg" :ref="'myVideo'+item.courseDetailsId"
|
||||
:id="'myVideo'+item.courseDetailsId" :src="item.videoUrl" :autoplay="item.autoPlay"
|
||||
class="swipers-items-video"></video>
|
||||
|
|
@ -15,7 +16,8 @@
|
|||
mode="aspectFill">
|
||||
</image>
|
||||
<!-- 返回图标 -->
|
||||
<image src="../static/nvueIcon/backs.png" @click="goBack()" class="swipers-items-back" mode="">
|
||||
<image v-if="showBack" src="../static/nvueIcon/backs.png" @click="goBack()"
|
||||
class="swipers-items-back" mode="">
|
||||
</image>
|
||||
<!-- 右边操作 -->
|
||||
<view class="swipers-items-right" :style="rightTop" v-if="showControls">
|
||||
|
|
@ -44,7 +46,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="swipers-items-right-item" v-if="isCollect">
|
||||
<view class="swipers-items-right-item-img" @click.stop="shoucang()">
|
||||
<view class="swipers-items-right-item-img" @click.stop="collectVideo()">
|
||||
<image class="swipers-items-right-item-imgs" src="../../static/images/me/shuqian_s.png"
|
||||
mode=""></image>
|
||||
</view>
|
||||
|
|
@ -55,7 +57,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="swipers-items-right-item" v-else>
|
||||
<view class="swipers-items-right-item-img" @click.stop="shoucang()">
|
||||
<view class="swipers-items-right-item-img" @click.stop="collectVideo()">
|
||||
<image class="swipers-items-right-item-imgs" src="../../static/images/me/shuqian.png"
|
||||
mode=""></image>
|
||||
</view>
|
||||
|
|
@ -141,24 +143,28 @@
|
|||
<image class="list-title-rs" src="../../static/images/me/closeIconss.png" mode=""></image>
|
||||
</view>
|
||||
</view>
|
||||
<text class=""
|
||||
style="font-size: 24rpx;color: #999;padding: 0 34rpx;margin: 20rpx 0; auto;text-align: left;width: 100%;">
|
||||
{{getRedEnvelopeTips}}
|
||||
</text>
|
||||
<view class="pay-content">
|
||||
<view class="pay-content-item" @click="payVideo(1)" v-if="zhengbu === '是'">
|
||||
<view class="pay-content-item" @click="payVideo(1)">
|
||||
<image class="pay-content-item-icon" src="../../static/images/me/rmIcon.png" mode=""></image>
|
||||
<text class="pay-content-items">
|
||||
{{zongPrice}}金豆解锁整部视频
|
||||
{{countPrice*scale}}金币解锁整部视频
|
||||
</text>
|
||||
</view>
|
||||
<view class="pay-content-item" @click="payVideo(2)" v-if="danbu === '是'">
|
||||
<view v-if="isShowMoneyPay" class="pay-content-item" @click="payVideo(2)">
|
||||
<text class="pay-content-items">
|
||||
{{countPrice}}金豆解锁单集视频
|
||||
{{countPrice}}元解锁单集视频
|
||||
</text>
|
||||
</view>
|
||||
<view class="pay-content-item" @click="goNav('/pages/me/vip/index')" v-if="isVips == '是'">
|
||||
<!-- <view class="pay-content-item" @click="goNav('/pages/me/vip/index')" v-if="isVips == '是'">
|
||||
<image class="pay-content-item-icon" src="../../static/images/me/rmIcon.png" mode=""></image>
|
||||
<text class="pay-content-items">
|
||||
开通会员
|
||||
</text>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -182,17 +188,17 @@
|
|||
<text class="popuppay-title-l">
|
||||
购买后继续观看
|
||||
</text>
|
||||
<image @click="closePopusPay()" class="popuppay-title-r"
|
||||
<image @click="closePopupPay()" class="popuppay-title-r"
|
||||
src="../../static/images/me/closeIconss.png" mode=""></image>
|
||||
</view>
|
||||
<!-- 余额 -->
|
||||
<view class="popuppay-money">
|
||||
<!-- <view class="popuppay-money">
|
||||
<view class="popuppay-money-l">
|
||||
<text class="popuppay-money-l-ye">
|
||||
账号余额:
|
||||
</text>
|
||||
<text class="popuppay-money-l-jd">
|
||||
{{moneyNum}}金豆
|
||||
{{moneyNum}}金币
|
||||
</text>
|
||||
<text class="popuppay-money-l-mx" @click="goWallet('/me/wallet/wallet')">
|
||||
查看明细
|
||||
|
|
@ -203,12 +209,12 @@
|
|||
解锁价格:
|
||||
</text>
|
||||
<text class="popuppay-money-jd">
|
||||
{{payPrice}}金豆
|
||||
{{payPrice}}金币
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- 充值类型列表 -->
|
||||
<scroll-view scroll-y="true" class="payLists">
|
||||
<!-- <scroll-view scroll-y="true" class="payLists">
|
||||
<view class="popuppay-payList">
|
||||
<view class="payList-item" @click="wallCurr = index" :class="wallCurr == index?'activePrice':''"
|
||||
v-for="(item,index) in wallet" :key="index">
|
||||
|
|
@ -220,12 +226,12 @@
|
|||
</view>
|
||||
<view class="payList-item-dou">
|
||||
<text class="payList-item-dous">
|
||||
{{item.money}}金豆
|
||||
{{item.money}}金币
|
||||
</text>
|
||||
</view>
|
||||
<view class="payList-item-duo" v-if="item.giveMoney>0">
|
||||
<text class="payList-item-duos">
|
||||
多送{{item.giveMoney}}金豆
|
||||
多送{{item.giveMoney}}金币
|
||||
</text>
|
||||
</view>
|
||||
<view class="payList-item-hui" v-if="item.remarks">
|
||||
|
|
@ -235,7 +241,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</scroll-view> -->
|
||||
<!-- 支付类型 -->
|
||||
<view class="payType">
|
||||
<view class="payType-item" @tap='selectWay(item)' v-for="(item,index) in openLists" :key="index">
|
||||
|
|
@ -298,6 +304,7 @@
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
showBack: true,
|
||||
nowBs: 1, //当前倍速
|
||||
subList: [{
|
||||
name: '0.5x',
|
||||
|
|
@ -358,6 +365,11 @@
|
|||
payPrice: 0, //解锁价格
|
||||
iosPayId: '',
|
||||
isCollect: false,
|
||||
playFlag: false,
|
||||
getRedEnvelopeTips: '',
|
||||
scale: 1,
|
||||
paddingBottom: '0',
|
||||
isShowMoneyPay: true,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -385,7 +397,7 @@
|
|||
this.isVips = uni.getStorageSync('isVips') ? uni.getStorageSync('isVips') : '否'
|
||||
let that = this
|
||||
uni.$on('back', (data) => {
|
||||
if (data.flag == true) {
|
||||
if (data.flag) {
|
||||
that.showPay = false
|
||||
that.getDataList(that.courseId, that.courseDetailsId, true);
|
||||
that.getMyLoveStatus()
|
||||
|
|
@ -396,58 +408,97 @@
|
|||
this.moneyTips = uni.getStorageSync('moneyTips')
|
||||
// #ifdef APP-PLUS
|
||||
if (plus.os.name.toLowerCase() === 'android') {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '微信',
|
||||
id: 2
|
||||
}, {
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
}];
|
||||
this.openWay = 2;
|
||||
let syPaySel = uni.getStorageSync('syPaySel')
|
||||
if (syPaySel === '是') {
|
||||
let openListsItem = {
|
||||
image: '/static/images/pay/shouyi.png',
|
||||
text: '收益余额',
|
||||
id: 4
|
||||
};
|
||||
this.openLists.push(openListsItem)
|
||||
}
|
||||
} else {
|
||||
let checkIosPay = uni.getStorageSync('checkIosPay');
|
||||
if (checkIosPay === '是') {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '苹果',
|
||||
id: 3
|
||||
}];
|
||||
this.openWay = 3;
|
||||
} else {
|
||||
this.openLists = [{
|
||||
image: '/static/images/pay/weixin.png',
|
||||
text: '微信',
|
||||
id: 2
|
||||
}, {
|
||||
this.openLists = [
|
||||
// {
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '微信',
|
||||
// id: 2
|
||||
// },
|
||||
{
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
}];
|
||||
this.openWay = 2;
|
||||
let syPaySel = uni.getStorageSync('syPaySel')
|
||||
if (syPaySel === '是') {
|
||||
let openListsItem = {
|
||||
image: '/static/images/pay/shouyi.png',
|
||||
text: '收益余额',
|
||||
id: 4
|
||||
};
|
||||
this.openLists.push(openListsItem)
|
||||
}
|
||||
}
|
||||
},
|
||||
];
|
||||
this.openWay = 1;
|
||||
let syPaySel = uni.getStorageSync('syPaySel')
|
||||
// if (syPaySel === '是') {
|
||||
// let openListsItem = {
|
||||
// image: '/static/images/pay/shouyi.png',
|
||||
// text: '收益余额',
|
||||
// id: 4
|
||||
// };
|
||||
// this.openLists.push(openListsItem)
|
||||
// }
|
||||
} else {
|
||||
let checkIosPay = uni.getStorageSync('checkIosPay');
|
||||
// if (checkIosPay === '是') {
|
||||
// this.openLists = [{
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '苹果',
|
||||
// id: 3
|
||||
// }];
|
||||
// this.openWay = 3;
|
||||
// } else {
|
||||
this.openLists = [
|
||||
// {
|
||||
// image: '/static/images/pay/weixin.png',
|
||||
// text: '微信',
|
||||
// id: 2
|
||||
// },
|
||||
{
|
||||
image: '/static/images/pay/zhifubao.png',
|
||||
text: '支付宝',
|
||||
id: 1
|
||||
},
|
||||
];
|
||||
this.openWay = 1;
|
||||
let syPaySel = uni.getStorageSync('syPaySel')
|
||||
// if (syPaySel === '是') {
|
||||
// let openListsItem = {
|
||||
// image: '/static/images/pay/shouyi.png',
|
||||
// text: '收益余额',
|
||||
// id: 4
|
||||
// };
|
||||
// this.openLists.push(openListsItem)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// #endif
|
||||
this.$nextTick(() => {
|
||||
this.closePopupPay()
|
||||
})
|
||||
if (this.courseId) {
|
||||
this.getDataList(this.courseId, this.courseDetailsId);
|
||||
|
||||
}
|
||||
httpsRequest.getT('app/course/getRedEnvelopeTips').then(res => {
|
||||
if (res.code === 0) {
|
||||
this.getRedEnvelopeTips = res.data
|
||||
}
|
||||
})
|
||||
this.getScale()
|
||||
|
||||
const sysInfo = uni.getSystemInfoSync()
|
||||
console.log(sysInfo);
|
||||
const padB = sysInfo.safeAreaInsets.bottom;
|
||||
console.log('win height == ' + padB);
|
||||
if (padB && padB > 0) {
|
||||
this.paddingBottom = padB + 'px'
|
||||
} else {
|
||||
this.paddingBottom = '0'
|
||||
}
|
||||
|
||||
console.log('this bottom padding = ' + this.paddingBottom);
|
||||
|
||||
httpsRequest.getT("app/common/type/919", {}).then(res => {
|
||||
if (res.code === 0) {
|
||||
const sysInfo = uni.getSystemInfoSync();
|
||||
let isIos = sysInfo.platform == 'ios'
|
||||
this.isShowMoneyPay = !(res.data.value == '1' && isIos)
|
||||
}
|
||||
});
|
||||
},
|
||||
onLoad(e) {
|
||||
let that = this
|
||||
|
|
@ -472,16 +523,57 @@
|
|||
if (e.courseDetailsId) {
|
||||
this.courseDetailsId = e.courseDetailsId;
|
||||
}
|
||||
this.getDataList(this.courseId, this.courseDetailsId);
|
||||
this.getMyLoveStatus()
|
||||
this.getMoneyList()
|
||||
this.getMyMoney()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 获取金币比例
|
||||
*/
|
||||
getScale() {
|
||||
httpsRequest.getT("app/common/type/914", {}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.scale = Number(res.data.value)
|
||||
}
|
||||
});
|
||||
},
|
||||
//播放时的回掉
|
||||
videoPlay(videoId, courseDetailsId) {
|
||||
this.courseDetailsId = courseDetailsId
|
||||
if (!this.playFlag) {
|
||||
this.playFlag = true
|
||||
httpsRequest.getT('app/course/viewCourse', {
|
||||
courseId: this.courseId,
|
||||
courseDetailsId: courseDetailsId,
|
||||
type: 'start'
|
||||
}).then(res => {
|
||||
console.log('播放开始')
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
//播放进度变化回掉
|
||||
timeupdate(e) {
|
||||
|
||||
if (e.detail.currentTime > e.detail.duration * 0.9) {
|
||||
if (this.playFlag) {
|
||||
this.playFlag = false
|
||||
httpsRequest.getT('app/course/viewCourse', {
|
||||
courseId: this.courseId,
|
||||
courseDetailsId: this.courseDetailsId,
|
||||
type: 'end'
|
||||
}).then(res => {
|
||||
console.log('播放结束')
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
//选集弹窗的回调
|
||||
changeXj(e) {
|
||||
if (e.show == false) {
|
||||
if (!e.show) {
|
||||
//关闭弹窗的时候重置scrollIntoViews,防止关闭后第二次点就不能自动滑动到当前集的位置
|
||||
this.scrollIntoViews = 'video0'
|
||||
}
|
||||
|
|
@ -522,7 +614,7 @@
|
|||
});
|
||||
},
|
||||
isCheckPay(status, name, order) {
|
||||
if (status == 0) {
|
||||
if (status === 0) {
|
||||
this.setPayment(name, order);
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
|
|
@ -532,7 +624,7 @@
|
|||
});
|
||||
}
|
||||
},
|
||||
iphonepay() {
|
||||
iphonePay() {
|
||||
let that = this
|
||||
plus.payment.getChannels((res) => {
|
||||
let channel = res.find(i => i.id === 'appleiap')
|
||||
|
|
@ -588,7 +680,7 @@
|
|||
httpsRequest.postT('/app/ios/isoPayApp?receipt=' + receipt + '&ordersId=' + that.iosPayId).then(
|
||||
res => {
|
||||
uni.hideLoading();
|
||||
if (res.status == 0) {
|
||||
if (res.status === 0) {
|
||||
uni.showToast({
|
||||
title: '支付成功',
|
||||
duration: 2000,
|
||||
|
|
@ -600,7 +692,7 @@
|
|||
},
|
||||
// 充值
|
||||
pay() {
|
||||
if (this.checked == false) {
|
||||
if (!this.checked) {
|
||||
uni.showToast({
|
||||
title: '请阅读并同意《付费须知说明》',
|
||||
icon: 'none'
|
||||
|
|
@ -611,7 +703,7 @@
|
|||
uni.showLoading({
|
||||
title: '支付中...'
|
||||
})
|
||||
if (this.openWay == 2) {
|
||||
if (this.openWay === 2) {
|
||||
// 微信APP支付 根据订单id获取支付信息
|
||||
httpsRequest.postT("/app/wxPay/payMoney", {
|
||||
classify: 1,
|
||||
|
|
@ -619,16 +711,20 @@
|
|||
}).then(ret => {
|
||||
this.isCheckPay(ret.code, 'wxpay', JSON.stringify(ret.data));
|
||||
});
|
||||
} else if (this.openWay == 1) {
|
||||
} else if (this.openWay === 1) {
|
||||
let paytype = 'h5'
|
||||
// #ifdef APP
|
||||
paytype = 'app'
|
||||
// #endif
|
||||
// APP支付宝支付
|
||||
httpsRequest.postT("/app/aliPay/payMoney", {
|
||||
classify: 1,
|
||||
payClassifyId: this.wallet[this.wallCurr].payClassifyId,
|
||||
}).then(ret => {
|
||||
console.log(ret)
|
||||
this.isCheckPay(ret.code, 'alipay', ret.data);
|
||||
httpsRequest.getT("/app/wuyou/payOrder/" + this.ordersId + '?payType=' + paytype, {}).then(ret => {
|
||||
// plus.runtime.openURL(ret.data.h5Url)
|
||||
uni.navigateTo({
|
||||
url: '/pages/pays/pays?ordersId=' + this.ordersId + '&url=' + ret.data.h5Url
|
||||
});
|
||||
// this.isCheckPay(ret.code, 'wxpay', JSON.stringify(ret.data));
|
||||
});
|
||||
} else if (this.openWay == 3) {
|
||||
} else if (this.openWay === 3) {
|
||||
let userId = uni.getStorageSync('userId');
|
||||
let data = {
|
||||
payClassifyId: this.wallet[this.wallCurr].payClassifyId,
|
||||
|
|
@ -645,7 +741,7 @@
|
|||
});
|
||||
}
|
||||
});
|
||||
} else if (this.openWay == 4) {
|
||||
} else if (this.openWay === 4) {
|
||||
let userId = uni.getStorageSync('userId');
|
||||
let data = {
|
||||
// money: this.wallet[this.current].price
|
||||
|
|
@ -675,7 +771,7 @@
|
|||
getMyMoney() {
|
||||
if (uni.getStorageSync('token')) {
|
||||
httpsRequest.getT('/app/moneyDetails/selectUserMoney').then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.moneyNum = res.data.money
|
||||
}
|
||||
})
|
||||
|
|
@ -729,7 +825,7 @@
|
|||
*/
|
||||
getMoneyList() {
|
||||
httpsRequest.getT('/app/payClassify/selectPayClassifyList').then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
let priceObj = this.findMinMaxPricesWithIndexes(res.data)
|
||||
this.wallet = res.data
|
||||
this.wallet[priceObj.minPriceIndex].remarks = '特惠'
|
||||
|
|
@ -746,7 +842,7 @@
|
|||
this.wallet = arr
|
||||
}
|
||||
// #ifdef APP
|
||||
this.iphonepay()
|
||||
this.iphonePay()
|
||||
// #endif
|
||||
} else {
|
||||
uni.showToast({
|
||||
|
|
@ -757,11 +853,11 @@
|
|||
})
|
||||
},
|
||||
//关闭支付弹窗
|
||||
closePopusPay() {
|
||||
closePopupPay() {
|
||||
this.$refs.popuppay.close()
|
||||
},
|
||||
//打开支付弹窗
|
||||
openPopusPay() {
|
||||
openPopupPay() {
|
||||
this.$refs.popuppay.open('bottom')
|
||||
},
|
||||
// 获取收藏状态
|
||||
|
|
@ -781,8 +877,9 @@
|
|||
})
|
||||
},
|
||||
//显示/隐藏适配控制器的回调
|
||||
controlstoggles(e) {
|
||||
controlStoggles(e) {
|
||||
this.showControls = e.detail.show
|
||||
this.showBack = this.showControls
|
||||
console.log(e.detail.show, '显示/隐藏控制栏')
|
||||
},
|
||||
//打开倍速弹框
|
||||
|
|
@ -856,19 +953,28 @@
|
|||
})
|
||||
}
|
||||
},
|
||||
//使用金豆购买
|
||||
//使用金币购买
|
||||
submitPay(type) {
|
||||
let data = {
|
||||
courseId: this.courseId
|
||||
}
|
||||
if (type != 1) { //购买单集
|
||||
data.courseDetailsId = this.videoList[this.current].courseDetailsId
|
||||
}
|
||||
|
||||
data.courseDetailsId = this.videoList[this.current].courseDetailsId
|
||||
httpsRequest.getT('/app/order/insertCourseOrders', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.ordersId = res.data.orders.ordersId //记录订单id
|
||||
this.payMoney = res.data.orders.payMoney //记录订单价格
|
||||
this.payOrder(res.data.orders.ordersId, res.data.orders.payMoney)
|
||||
|
||||
if (type === 1) { //金币
|
||||
this.payOrder(res.data.orders.ordersId, res.data.orders.payMoney)
|
||||
} else if (type === 2) { //支付宝
|
||||
this.closePay() //关闭购买选择弹窗
|
||||
this.payPrice = res.data.orders.payMoney //需要支付的价格
|
||||
this.openPopupPay() //显示充值弹窗
|
||||
}
|
||||
|
||||
|
||||
// this.payOrder(res.data.orders.ordersId, res.data.orders.payMoney)
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
|
|
@ -882,25 +988,30 @@
|
|||
httpsRequest.postT("/app/order/payOrders", {
|
||||
orderId: orderId,
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
uni.hideLoading()
|
||||
uni.showToast({
|
||||
title: '已解锁,支付' + payMoney + '金豆',
|
||||
title: '已成功解锁',
|
||||
icon: 'none'
|
||||
})
|
||||
this.closePopusPay()
|
||||
this.closePopupPay()
|
||||
this.closePay()
|
||||
that.showPay = false
|
||||
that.showMoney = false
|
||||
that.noBuyVideoIndex = null
|
||||
|
||||
setTimeout(() => {
|
||||
that.getDataList(that.courseId, that.videoList[that.current].courseDetailsId,
|
||||
true);
|
||||
}, 1000)
|
||||
|
||||
} else { //支付失败(余额不足)
|
||||
that.closePay() //关闭购买选择弹窗
|
||||
this.payPrice = payMoney //需要支付的价格
|
||||
this.openPopusPay() //显示充值弹窗
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
that.showPay = true
|
||||
that.showMoney = false
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
@ -925,7 +1036,7 @@
|
|||
this.videoList = [...this.videoList, ...this.meunList.slice(index + 1, index + 3)]
|
||||
}
|
||||
//只剩一条数据
|
||||
if (lengths == 1) {
|
||||
if (lengths === 1) {
|
||||
//把剩下的一条给放进去
|
||||
this.videoList = [
|
||||
//选中的那条
|
||||
|
|
@ -937,7 +1048,7 @@
|
|||
]
|
||||
}
|
||||
//选择的就是最后一条数据
|
||||
if (lengths == 0) {
|
||||
if (lengths === 0) {
|
||||
//后两条拿总数组的前两条就可以了
|
||||
this.videoList = [...this.videoList, ...this.meunList.slice(0, 2)]
|
||||
}
|
||||
|
|
@ -945,11 +1056,15 @@
|
|||
this.$forceUpdate()
|
||||
},
|
||||
//选择播放
|
||||
selectPlay(item, index) {
|
||||
selectPlay(item, index, type) {
|
||||
// 根据选择的courseDetailsId拿到meunList列表中的相同数据的下标
|
||||
// const index = this.meunList.findIndex(menu => menu.courseDetailsId === item.courseDetailsId);
|
||||
// this.videoList = [this.meunList[index]]
|
||||
this.current = index
|
||||
if (this.videoList[this.current].videoUrl === '' && this.videoList[this.current].price <= 0 && !type) {
|
||||
this.getDataList(this.courseId, this.courseDetailsId, true, 'select')
|
||||
return;
|
||||
}
|
||||
//重新计算一下当前观看的是哪个视频
|
||||
this.comNumVideo()
|
||||
// 把选择的视频的自动播放设置为true
|
||||
|
|
@ -988,7 +1103,7 @@
|
|||
this.$refs.popup.close()
|
||||
},
|
||||
//收藏
|
||||
shoucang() {
|
||||
collectVideo() {
|
||||
if (uni.getStorageSync('token')) {
|
||||
let data = {
|
||||
courseId: this.courseId,
|
||||
|
|
@ -996,7 +1111,7 @@
|
|||
type: this.isCollect == false ? 1 : 0
|
||||
}
|
||||
httpsRequest.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.getMyLoveStatus()
|
||||
}
|
||||
})
|
||||
|
|
@ -1183,7 +1298,7 @@
|
|||
* @param {Number} courseDetailsId 当前视频id
|
||||
* @param {boolean} type 是购买后返回的还是直接进来的
|
||||
*/
|
||||
getDataList(courseId, courseDetailsId, type) {
|
||||
getDataList(courseId, courseDetailsId, type, t) {
|
||||
let data = {
|
||||
id: courseId,
|
||||
token: uni.getStorageSync('token') ? uni.getStorageSync('token') : ''
|
||||
|
|
@ -1294,7 +1409,9 @@
|
|||
} else { //不能播放则需要购买
|
||||
this.openPay()
|
||||
}
|
||||
|
||||
if (t == 'select') {
|
||||
this.selectPlay(this.videoList[this.current], this.current, true)
|
||||
}
|
||||
this.$forceUpdate();
|
||||
//插入历史记录
|
||||
this.setHistor(this.videoList[this.current].courseId, this.videoList[this.current]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
<template>
|
||||
<view>
|
||||
<web-view src="http://baidu.com/"></web-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.bg-fff{
|
||||
width: 750rpx;
|
||||
height: 300rpx;background-color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -111,7 +111,7 @@
|
|||
uni.showLoading({
|
||||
title: '加载中...'
|
||||
})
|
||||
this.$u.post('/app/message/insertMessage', {
|
||||
this.$u.post('app/message/sendMessage', {
|
||||
title: this.sendDate.contact,
|
||||
content: JSON.stringify(this.sendDate),
|
||||
state: 2
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@
|
|||
types:1
|
||||
}
|
||||
this.$u.api.help(data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.helpClassifyList = res.data
|
||||
for (var i = 0; i < this.helpClassifyList.length; i++) {
|
||||
this.helpClassifyList[i].parentId = 1
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
<template>
|
||||
<view class="min-page bg-gray u-font-28">
|
||||
<view class="block bg-fff border-r-18 default-box-padding">
|
||||
<view>
|
||||
<view>中奖用户手机号</view>
|
||||
<view class="border u-m-t-24 u-p-l-24" style="margin-bottom: 20rpx;">
|
||||
<u-input v-model="query.phone" type="number" maxlength="11" placeholder="请输入中奖用户手机号"></u-input>
|
||||
</view>
|
||||
<view>收货地址</view>
|
||||
<view class="border u-m-t-24 u-p-l-24" style="margin-bottom: 20rpx;">
|
||||
<u-input v-model="query.address" type="text" placeholder="请输入收货地址"></u-input>
|
||||
</view>
|
||||
<view>备注</view>
|
||||
<view class="border u-m-t-24 u-p-l-24">
|
||||
<u-input v-model="query.remark" type="text" placeholder="请输入备注"></u-input>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="u-m-t-48">
|
||||
<view>兑换事项</view>
|
||||
<view class="u-m-t-16 color-999">
|
||||
请认真核实兑换账号,一但兑换成功后,不予退换。
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-flex u-row-center">
|
||||
<view class="btn-circle duihuan" @click="exchange">确认兑换</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
query: {
|
||||
foreignId: null,
|
||||
foreignType: 'spinning',
|
||||
phone: "",
|
||||
address: "",
|
||||
remark: "",
|
||||
},
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
console.log(options)
|
||||
if ( options.id ) {
|
||||
this.query.foreignId = options.id
|
||||
}
|
||||
if ( options.foreignType ) {
|
||||
this.query.foreignType = options.foreignType
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
exchange(){
|
||||
let url = ""
|
||||
if ( !this.query.phone ) {
|
||||
uni.showToast({ title: '请输入中奖用户手机号', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if ( !this.query.address ) {
|
||||
uni.showToast({ title: '请输入中奖用户地址', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
this.$Request.postJson("app/userPrizeExchange/exchange", this.query).then(res => {
|
||||
if (res.code == 0 ) {
|
||||
uni.navigateBack()
|
||||
uni.showToast({ title: '兑换成功', icon: 'none' });
|
||||
} else {
|
||||
uni.showToast({ title: res.msg, icon: 'none' });
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.border {
|
||||
border: 1px solid #999999;
|
||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
||||
}
|
||||
.duihuan{
|
||||
background: #ED838A;
|
||||
width: 556rpx;
|
||||
padding: 18rpx 0;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
margin-top: 84rpx;
|
||||
}
|
||||
.min-page {
|
||||
padding: 32rpx 20rpx;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
<template>
|
||||
<view class="min-page bg-gray u-font-28">
|
||||
<u-navbar :background="background" back-icon-color="#fff" immersive :border-bottom="false"></u-navbar>
|
||||
<view class="gift-bg">
|
||||
</view>
|
||||
<view class="list">
|
||||
<view class="tab">
|
||||
<view class="tab_item" :class="{active: item.type == tabIndex}" @click="tabClick(item)"
|
||||
v-for="(item,index) in tab" :key="index">{{item.label}}</view>
|
||||
</view>
|
||||
<view class="item" v-for="(item,index) in list" :key="index">
|
||||
<view class="color-666 u-font-24">{{tabIndex==1?'中奖时间':'兑换时间'}} {{item.createTime}}</view>
|
||||
<view class="u-m-t-24 u-flex u-row-between">
|
||||
<view class="u-flex-1 u-flex u-col-top">
|
||||
<u-image width="128rpx" height="128rpx" v-if="item.type == 2 "
|
||||
src="/static/red-pack.png"></u-image>
|
||||
<u-image width="128rpx" height="128rpx" v-else :src="item.imgUrl"></u-image>
|
||||
<view class="u-m-l-16">
|
||||
<view v-if="tabIndex == 1">{{item.name}}</view>
|
||||
<view v-else>{{item.prizeName}}</view>
|
||||
<view v-if="tabIndex == 1" class="color-999 u-font-24 u-m-t-16">×{{item.number}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="" v-if="tabIndex==1&&!item.targetId&&item.type==3">
|
||||
<view class="btn-circle duihuan" @click="toDuiHuan(item)">立即兑换</view>
|
||||
<!-- <view class="btn-circle duihuan finish">已完成</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-p-t-30 u-p-b-30 empty" v-if="hasAjax&&!list.length">
|
||||
<u-empty text="暂无记录" src="/static/icon-empty.svg"></u-empty>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="u-p-30">
|
||||
<u-loadmore font-size="24" color="#999" :status="status" />
|
||||
</view> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
background: {
|
||||
backgroundColor: 'transparent'
|
||||
},
|
||||
tab: [{
|
||||
label: '抽奖记录',
|
||||
type: 1
|
||||
}, {
|
||||
label: '兑换记录',
|
||||
type: 2
|
||||
}],
|
||||
tabIndex: 1,
|
||||
query: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
},
|
||||
total: 0,
|
||||
status: 'nomore',
|
||||
hasAjax: true,
|
||||
list: [],
|
||||
isLoading:false,
|
||||
isEnd:false
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
this.list = [];
|
||||
this.getList()
|
||||
},
|
||||
// onReachBottom() {
|
||||
// console.log('onReachBottom');
|
||||
// if (this.isEnd || this.isLoading) {
|
||||
// return
|
||||
// }
|
||||
// this.query.page+=1;
|
||||
// this.getList()
|
||||
// },
|
||||
methods: {
|
||||
toDuiHuan(item) {
|
||||
uni.navigateTo({
|
||||
url: `/me/gift/duihuan?id=${item.id}`
|
||||
})
|
||||
},
|
||||
tabClick(item) {
|
||||
this.list = [];
|
||||
this.tabIndex = item.type;
|
||||
this.query.page=1;
|
||||
this.getList()
|
||||
},
|
||||
getList() {
|
||||
let url = ""
|
||||
if (this.tabIndex == 1) {
|
||||
url = "app/discSpinningRecord/selectDiscSpinningRecord"
|
||||
} else {
|
||||
url = "/app/userPrizeExchange/page"
|
||||
}
|
||||
this.isLoading=true
|
||||
this.$Request.getT(url, this.query).then(res => {
|
||||
this.isLoading=false
|
||||
this.isEnd=this.query.page>=( this.tabIndex == 1?res.data.totalPage:res.page.totalPage)
|
||||
if (res.code == 0) {
|
||||
if (this.tabIndex == 1) {
|
||||
this.list = [...this.list, ...res.data.records]
|
||||
this.total = res.data.total
|
||||
} else {
|
||||
this.list = [...this.list, ...res.page.list]
|
||||
this.total = res.page.totalCount
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
onReachBottom: function() {
|
||||
console.log(this.query.page)
|
||||
console.log(this.query.limit)
|
||||
if (!this.isEnd&&!this.isLoading) {
|
||||
this.query.page = this.query.page + 1;
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.duihuan {
|
||||
background: linear-gradient(87deg, #ED8087 0%, #ECA2AA 100%);
|
||||
font-size: 24rpx;
|
||||
color: #fff;
|
||||
padding: 8rpx 16rpx;
|
||||
text-align: center;
|
||||
|
||||
&.finish {
|
||||
background: #E5E5E5;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.gift-bg {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 524rpx;
|
||||
background: url('~static/images/gift-bg.png') no-repeat center center/cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
background-image: url("~static/images/gift-bg.png");
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 2),
|
||||
(min-device-pixel-ratio: 2) {
|
||||
background-image: url("~static/images/gift-bg@2x.png");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.empty {
|
||||
// min-height: 50vh;
|
||||
}
|
||||
|
||||
.min-page {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.list {
|
||||
margin: 0 20rpx;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
margin-top: -148rpx;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
|
||||
.tab {
|
||||
display: flex;
|
||||
|
||||
.tab_item {
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
width: 50%;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.tab_item.active {
|
||||
background-color: #ECA2AA;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 32rpx 24rpx;
|
||||
border-bottom: 1rpx solid #E5E5E5;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
methods: {
|
||||
getIntegral() {
|
||||
this.$u.api.integral().then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.integralNum = res.data.integralNum
|
||||
}else {
|
||||
uni.showToast({
|
||||
|
|
|
|||
|
|
@ -1,58 +1,143 @@
|
|||
<template>
|
||||
<view class="cash">
|
||||
<view
|
||||
<u-navbar title="申请提现" title-bold back-icon-color="#fff" :background="{background:'rgb(255, 117, 129)'}" immersive
|
||||
:border-bottom="false" title-color="#fff">
|
||||
<view slot="right" class="u-p-r-30 u-flex u-col-center color-fff" @click="showRule">
|
||||
<text class="rule-btn">规则</text>
|
||||
</view>
|
||||
</u-navbar>
|
||||
<view class=""
|
||||
style="background-color: #ff7581;height: 400upx;border-bottom-right-radius: 40upx;border-bottom-left-radius: 40upx;">
|
||||
|
||||
<view style="font-size: 32upx;color: #FFFFFF;padding-top: 100upx;">可提现总额</view>
|
||||
<view style="font-size: 40upx;color: #FFFFFF;padding-top: 20upx;">¥ {{mayMoney}}</view>
|
||||
<view style="font-size: 40upx;color: #FFFFFF;padding-top: 20upx;">¥ {{ mayMoney }}</view>
|
||||
|
||||
<view
|
||||
style="width: 90%;height: max-content;margin-left: 40upx;background-color: #FFFFFF;box-shadow: rgba(183, 183, 183, 0.3) 0px 1px 10px;margin-top: 50upx;border-radius: 20upx;">
|
||||
<view style="display: flex;flex-direction: row;padding: 20upx;">
|
||||
<view style="font-size: 32upx;color: #333333;">提现金额 <text style="font-size: 28upx;color: #ff7581;"
|
||||
v-if="shouxufei">(注:提现手续费为{{shouxufei * 100}}%)</text>
|
||||
<view style="font-size: 32upx;color: #333333;">提现金额
|
||||
<!-- <text style="font-size: 28upx;color: #ff7581;"
|
||||
v-if="shouxufei">(注:提现手续费为{{shouxufei * 100}}%)</text> -->
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;flex-direction: row;padding: 20upx;">
|
||||
<view style="font-size: 40upx;color: #333333;">¥</view>
|
||||
<input type="number" v-model="money" placeholder="请输入金额"
|
||||
style="font-size: 40upx;color: #333333;text-align: left;margin-left: 10upx;width: 100%;" />
|
||||
<view
|
||||
style="display: flex;flex-direction: row;padding: 20upx;justify-content: space-between;align-items: center;">
|
||||
<view style="display: flex;align-items: center;">
|
||||
<view style="font-size: 40upx;color: #333333;">¥</view>
|
||||
<input type="number" v-model="money" placeholder="请输入金额" @input="moneyInput" @blur="moneyBlur"
|
||||
style="font-size: 40upx;color: #333333;text-align: left;margin-left: 10upx;width: 80%;" />
|
||||
</view>
|
||||
<view @click="setAllMoney"
|
||||
style="font-size: 30rpx;color: #333333;background: #ff7581;color: white;border-radius: 10rpx;padding: 7rpx 15rpx;flex-shrink: 0;">
|
||||
全部
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view style="background: #E6E6E6;width: 100%;height: 1upx;"></view>
|
||||
|
||||
<view style="display: flex;flex-direction: row;flex-wrap: wrap;">
|
||||
<view style="display: flex;flex-direction: row;" v-for="(item, index) in moneyList" :key="index">
|
||||
<view>
|
||||
<view style="padding: 20upx;" @click="getOut1(item.money)">
|
||||
<view
|
||||
style="padding-top: 40upx;width: 180upx; height: 120upx;background-color: #FFFFFF;border:1px solid #ff7581;border-radius: 10upx;">
|
||||
{{ item.money }}
|
||||
</view>
|
||||
<!-- <view style="display: flex;flex-direction: row;flex-wrap: wrap;">
|
||||
<view style="display: flex;flex-direction: row;" v-for="(item, index) in moneyList" :key="index">
|
||||
<view>
|
||||
<view style="padding: 20upx;" @click="getOut1(item.money)">
|
||||
<view
|
||||
style="padding-top: 40upx;width: 180upx; height: 120upx;background-color: #FFFFFF;border:1px solid #ff7581;border-radius: 10upx;">
|
||||
{{ item.money }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view @click="withdraw"
|
||||
style="margin: 32upx;font-size: 18px;background: #ff7581;color: white;border-radius: 10px;height: 40px;line-height: 40px;">
|
||||
{{!isWithdraw?'观看广告提现':'立即提现'}}
|
||||
</view>
|
||||
|
||||
<view style="display: flex;width: 100%;justify-content: center;">
|
||||
<view class="u-flex-1" style="color: grey;padding-bottom: 30px;padding-top: 20upx;" @click="realName">
|
||||
实名认证
|
||||
</view>
|
||||
<!-- <view class="u-flex-1" style="color: grey;padding-bottom: 30px;padding-top: 20upx;" @click="goZhifuBao">
|
||||
提现账号
|
||||
</view> -->
|
||||
<view class="u-flex-1" style="color: grey;padding-bottom: 30px;padding-top: 20upx;" @click="goqianbao">
|
||||
红包明细
|
||||
</view>
|
||||
<!-- <view style="color: grey;padding-bottom: 30px;padding-top: 20upx;width: 33%;" @click="gojilu">提现记录
|
||||
</view> -->
|
||||
</view>
|
||||
|
||||
<view style="text-align: left" class="moneyList u-p-b-30">
|
||||
<view v-if="list.length" v-for="(item, index) in list" :key="index" class="item">
|
||||
<view>
|
||||
<view style="margin-bottom: 8upx;text-align: right;">
|
||||
<text style="margin-bottom: 8upx;color: green" v-if="item.state===1"> 提现成功</text>
|
||||
<text style="margin-bottom: 8upx;color: green" v-if="item.state===0||item.state==3">
|
||||
提现中</text>
|
||||
<text style="margin-bottom: 8upx;color: #FD6416" v-if="item.state===-1||item.state===2">
|
||||
提现失败
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<view style="color: #999999;font-size: 28upx;">
|
||||
<view style="margin-bottom: 8upx"> 收款人账号:{{ item.zhifubao }}</view>
|
||||
<view style="margin-bottom: 8upx"> 收款人姓名:{{ item.zhifubaoName }}</view>
|
||||
<view style="margin-bottom: 8upx"> 发起时间:{{ item.createAt }}</view>
|
||||
<view style="margin-bottom: 8upx" v-if="item.state===1">成功时间:{{ item.outAt }}</view>
|
||||
<view style="margin-bottom: 8upx;color: #FD6416" v-if="item.state===-1||item.state===2">
|
||||
失败原因:{{ item.refund }}
|
||||
</view>
|
||||
|
||||
<view style="margin-bottom: 8upx;text-align: right;">
|
||||
<!-- 提现金额: -->
|
||||
<text style="color: #FD6416;font-size: 32upx;font-weight: 600"> ¥{{ item.money }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view @click="getOut"
|
||||
style="margin: 32upx;font-size: 18px;background: #ff7581;color: white;border-radius: 10px;height: 40px;line-height: 40px">
|
||||
提现
|
||||
|
||||
<view class="page-box" v-if="!list.length">
|
||||
<view class="centre">
|
||||
<image src="../../static/images/learn/none.png" mode=""></image>
|
||||
<view class="tips">
|
||||
暂无记录
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
<view style="display: flex;width: 100%;justify-content: center;">
|
||||
<view style="color: grey;padding-bottom: 30px;padding-top: 20upx;width: 33%;" @click="goZhifuBao">提现账号
|
||||
</view>
|
||||
<view style="color: grey;padding-bottom: 30px;padding-top: 20upx;width: 33%;" @click="goqianbao">钱包明细
|
||||
</view>
|
||||
<view style="color: grey;padding-bottom: 30px;padding-top: 20upx;width: 33%;" @click="gojilu">提现记录
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<u-modal v-model="ruleShow" confirm-text="知道了" @confirm="ruleConfirm" :title="rule_title" :title-style="{fontWeight:'700'}" confirm-color="rgb(255, 117, 129)">
|
||||
<view class="u-p-30 u-text-left">
|
||||
<scroll-view scroll-y="true" style="max-height: 50vh;" >
|
||||
<rich-text class="color-666" :nodes="rule_content"></rich-text>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</u-modal>
|
||||
|
||||
|
||||
<view style="width: 0;height: 0;overflow: hidden;;">
|
||||
<!-- 激励视频广告 -->
|
||||
<ad-rewarded-video v-if="adRewardedVideo" ref="adRewardedVideo" adpid="1531580352" :loadnext="true" v-slot:default="{loading, error}"
|
||||
:url-callback="urlCallback" @load="onadload" @close="onadclose" @error="onaderror">
|
||||
</ad-rewarded-video>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { $cache_config, $cache_index,$cache_rule } from '@/store/cashe.js'
|
||||
import { init } from '@/utils/init.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
ruleShow: false,
|
||||
rule_title: "",
|
||||
rule_content: "",
|
||||
money: '',
|
||||
mayMoney: '0',
|
||||
shouxufei: '',
|
||||
|
|
@ -81,36 +166,244 @@
|
|||
userId: '',
|
||||
zhifubao: '',
|
||||
zhifubaoName: '',
|
||||
list: [],
|
||||
page: 1,
|
||||
limit: 10,
|
||||
totalCount: 0,
|
||||
cashMoney: 0,
|
||||
urlCallback: null,
|
||||
adRewardedVideo: true,
|
||||
adRewardedVideoloadNum: 0,
|
||||
isWithdraw: false,
|
||||
withdrawNum: $cache_config.withdrawNum,
|
||||
ruleIndex: 0,
|
||||
ruleList: $cache_rule.ruleCash||[]
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.getshouxufei();
|
||||
this.getExtractFei();
|
||||
this.getMoneyDetail();
|
||||
|
||||
this.configInit()
|
||||
if ($cache_rule.ruleCash) {
|
||||
this.ruleInit()
|
||||
return
|
||||
}
|
||||
this.$Request.getT("app/announcement", {type: 1}).then(res => {
|
||||
if (res.code == 0 && res.data.length > 0) {
|
||||
this.ruleList = res.data
|
||||
$cache_rule.set('ruleCash',this.ruleList)
|
||||
this.ruleInit()
|
||||
this.ruleShow = true
|
||||
}
|
||||
});
|
||||
},
|
||||
onShow() {
|
||||
this.token = uni.getStorageSync('token')
|
||||
this.userId = uni.getStorageSync('userId')
|
||||
this.zhifubao = uni.getStorageSync('zhiFuBao')
|
||||
this.zhifubaoName = uni.getStorageSync('zhiFuBaoName')
|
||||
|
||||
|
||||
this.getcashMoney()
|
||||
|
||||
this.$u.api.userinfo().then(res => {
|
||||
if (res.code === 0) {
|
||||
if (res.data.certName) {
|
||||
this.zhifubaoName = res.data.certName;
|
||||
}
|
||||
if (res.data.accountNo) {
|
||||
this.zhifubao = res.data.accountNo;
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
onReachBottom: function() {
|
||||
if (this.page * this.limit < this.totalCount) {
|
||||
this.page = this.page + 1;
|
||||
this.getMoneyDetail();
|
||||
}
|
||||
},
|
||||
onPullDownRefresh: function() {
|
||||
this.page = 1;
|
||||
// that.list = []
|
||||
this.getMoneyDetail();
|
||||
},
|
||||
onNavigationBarButtonTap() {
|
||||
// this.list();
|
||||
},
|
||||
onReady() {
|
||||
this.$nextTick(()=>{
|
||||
this.adRewardedVideoloadNum = 0
|
||||
this.$refs.adRewardedVideo.load();
|
||||
})
|
||||
this.getCanCash()
|
||||
},
|
||||
methods: {
|
||||
//获取收取费
|
||||
getshouxufei() {
|
||||
this.$u.get('app/common/type/152').then(res => {
|
||||
async configInit(){
|
||||
if(!$cache_config.withdrawNum){
|
||||
const res = await init(true)
|
||||
this.withdrawNum = $cache_config.withdrawNum
|
||||
}
|
||||
},
|
||||
|
||||
ruleInit(){
|
||||
this.rule_title = this.ruleList[this.ruleIndex].title
|
||||
this.rule_content = this.ruleList[this.ruleIndex].content
|
||||
},
|
||||
/**
|
||||
* 规则弹窗打开
|
||||
*/
|
||||
showRule(){
|
||||
if( this.ruleList.length <= 0) {
|
||||
uni.showToast({
|
||||
title: "暂未配置规则",
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
this.ruleInit()
|
||||
this.ruleShow = true
|
||||
},
|
||||
ruleConfirm(){
|
||||
this.ruleIndex++
|
||||
if( this.ruleIndex >= this.ruleList.length) {
|
||||
this.ruleIndex = 0
|
||||
return
|
||||
}
|
||||
this.ruleShow = false
|
||||
setTimeout(res=>{
|
||||
this.ruleInit()
|
||||
this.ruleShow = true
|
||||
},300)
|
||||
},
|
||||
/**
|
||||
* 获取看广告状态
|
||||
*/
|
||||
getCanCash() {
|
||||
this.$Request.getT('app/cash/canCash').then(res => {
|
||||
console.log(res)
|
||||
if (res.code == 0) {
|
||||
this.isWithdraw = res.data;
|
||||
} else {
|
||||
this.isWithdraw = false;
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 广告数据加载成功回调
|
||||
* @param {Object} e
|
||||
*/
|
||||
onadload(e) {
|
||||
this.adRewardedVideo = true;
|
||||
console.log('广告数据加载成功');
|
||||
},
|
||||
|
||||
/**
|
||||
* 广告加载失败回调
|
||||
* @param {Object} e
|
||||
*/
|
||||
onaderror(e) {
|
||||
if ( this.adRewardedVideoloadNum >=3 ) {
|
||||
this.adRewardedVideo = false;
|
||||
return
|
||||
}
|
||||
this.adRewardedVideoloadNum++
|
||||
setTimeout(() => {
|
||||
this.$refs.adRewardedVideo.load();
|
||||
}, 1000); // 10
|
||||
console.log("广告加载失败")
|
||||
},
|
||||
|
||||
/**
|
||||
* 广告播放成功回调
|
||||
* @param {Object} e
|
||||
*/
|
||||
async onadclose(e) {
|
||||
const detail = e.detail
|
||||
if (detail && detail.isEnded) {
|
||||
// 正常播放结束
|
||||
let res = await this.$Request.getT('app/ad/state', {
|
||||
extraKey: this.urlCallback.extra
|
||||
})
|
||||
this.getCanCash()
|
||||
} else {
|
||||
// 播放中途退出
|
||||
}
|
||||
},
|
||||
withdraw() {
|
||||
|
||||
if ( !this.isWithdraw ) {
|
||||
if( !this.adRewardedVideo ){
|
||||
uni.showToast({
|
||||
title: "广告加载失败,请检查网络稍后重试",
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
this.urlCallback = {
|
||||
userId: uni.getStorageSync('userId'),
|
||||
extra: 'cash:'+uni.getStorageSync('userId') + "" + new Date().getTime(),
|
||||
}
|
||||
this.$refs.adRewardedVideo.show();
|
||||
} else {
|
||||
this.getOut()
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
moneyInput(e) {
|
||||
let num = e.detail.value.match(/^\d*(\.?\d{0,2})/g)[0] || null;
|
||||
this.$nextTick(() => {
|
||||
this.money = num;
|
||||
});
|
||||
|
||||
},
|
||||
moneyBlur(e) {
|
||||
let num = e.detail.value.match(/^\d*(\.?\d{0,2})/g)[0] || null;
|
||||
this.$nextTick(() => {
|
||||
this.money = num;
|
||||
});
|
||||
},
|
||||
setAllMoney() {
|
||||
this.money = this.mayMoney.toFixed(2)
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取提现记录
|
||||
*/
|
||||
getMoneyDetail() {
|
||||
let that = this;
|
||||
let token = uni.getStorageSync('token')
|
||||
if (token) {
|
||||
//可以提现金额查询预估收入查询
|
||||
let data = {
|
||||
page: this.page,
|
||||
limit: this.limit
|
||||
}
|
||||
this.$Request.getT('app/cash/selectPayDetails', data).then(res => {
|
||||
this.totalCount = res.data.totalCount;
|
||||
|
||||
if (res.data.list.length > 0) {
|
||||
if(this.page==1){
|
||||
this.list = res.data.list
|
||||
}else{
|
||||
this.list = [...this.list, ...res.data.list];
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
//获取收取费
|
||||
getExtractFei() {
|
||||
this.$u.get('app/common/type/152').then(res => {
|
||||
if (res.code === 0) {
|
||||
if (res.data && res.data.value) {
|
||||
this.shouxufei = res.data.value;
|
||||
}
|
||||
}
|
||||
});
|
||||
this.$u.get('app/common/type/112').then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
if (res.data && res.data.value) {
|
||||
this.cashMoney = res.data.value;
|
||||
}
|
||||
|
|
@ -118,46 +411,59 @@
|
|||
});
|
||||
|
||||
},
|
||||
// 可提现金额
|
||||
|
||||
/**
|
||||
* 可提现金额
|
||||
*/
|
||||
getcashMoney() {
|
||||
let data = {
|
||||
page: this.page,
|
||||
limit: this.limit
|
||||
}
|
||||
this.$u.api.queryInviter(data).then(res => {
|
||||
|
||||
this.$Request.getT('app/moneyDetails/selectUserMoney').then(res => {
|
||||
if (res.code == 0) {
|
||||
this.mayMoney = res.data.inviteMoney.money
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
duration: 1000,
|
||||
icon: 'none'
|
||||
});
|
||||
this.mayMoney = res.data.amount || 0
|
||||
}
|
||||
})
|
||||
},
|
||||
// 提现记录
|
||||
|
||||
/**
|
||||
* 提现记录
|
||||
*/
|
||||
gojilu() {
|
||||
uni.navigateTo({
|
||||
url: '/me/invite/cashList'
|
||||
});
|
||||
},
|
||||
//钱包明细
|
||||
|
||||
/**
|
||||
* 红包明细
|
||||
*/
|
||||
goqianbao() {
|
||||
uni.navigateTo({
|
||||
url: '/me/invite/moneyList'
|
||||
url: '/me/invite/moneyList?moneyType=1&viewType=2'
|
||||
});
|
||||
},
|
||||
list() {
|
||||
// uni.navigateTo({
|
||||
// url: '/me/invite/cashList'
|
||||
// })
|
||||
|
||||
/**
|
||||
* 实名认证
|
||||
*/
|
||||
realName() {
|
||||
uni.navigateTo({
|
||||
url: '/me/invite/realName'
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 绑定支付宝
|
||||
*/
|
||||
goZhifuBao() {
|
||||
uni.navigateTo({
|
||||
url: '/me/invite/zhifubao'
|
||||
});
|
||||
},
|
||||
|
||||
getMoney() {
|
||||
let that = this;
|
||||
let token = that.token
|
||||
|
|
@ -166,12 +472,16 @@
|
|||
//this.$queue.showLoading("加载中...");
|
||||
//可以提现金额查询预估收入查询
|
||||
let data = {
|
||||
money: that.money
|
||||
amount: that.money
|
||||
}
|
||||
this.$u.api.cashMoney(data).then(res => {
|
||||
uni.showLoading({
|
||||
title: '提现中'
|
||||
});
|
||||
this.$u.api.withdraw(data).then(res => {
|
||||
console.log(res)
|
||||
if (res.code == 0) {
|
||||
uni.showToast({
|
||||
title: '提现申请成功,预计三个工作日到账',
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
that.money = ''
|
||||
|
|
@ -179,7 +489,29 @@
|
|||
that.getcashMoney()
|
||||
}, 1500)
|
||||
|
||||
} else {
|
||||
} else if (res.code == 9999) {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
setTimeout(function() {
|
||||
uni.navigateTo({
|
||||
url: '/me/invite/zhifubao'
|
||||
});
|
||||
}, 1500)
|
||||
|
||||
} else if (res.code == 9991) {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
setTimeout(function() {
|
||||
uni.navigateTo({
|
||||
url: '/me/invite/realName'
|
||||
});
|
||||
}, 1500)
|
||||
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
|
|
@ -188,141 +520,86 @@
|
|||
})
|
||||
}
|
||||
},
|
||||
//校验用户输入金额
|
||||
checkMobile(money) {
|
||||
return RegExp(/^1[34578]\d{9}$/).test(money);
|
||||
},
|
||||
|
||||
getOut() {
|
||||
let that = this;
|
||||
let token = that.token
|
||||
let userId = that.userId
|
||||
console.log(token)
|
||||
let cashMoney = that.cashMoney;
|
||||
|
||||
if (token) {
|
||||
if (that.zhifubao && that.zhifubaoName) {
|
||||
if (!/^\d+$/.test(that.money)) {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '请输入正确金额,不能包含中文,英文,特殊字符和小数'
|
||||
});
|
||||
return;
|
||||
}
|
||||
let shouxufei = parseFloat(that.money * that.shouxufei).toFixed(2);
|
||||
if (parseFloat(that.mayMoney).toFixed(1) >= parseFloat(that.money) + shouxufei * 1) {
|
||||
if (parseFloat(that.money).toFixed(1) >= parseFloat(cashMoney)) {
|
||||
if (that.shouxufei > 0) {
|
||||
|
||||
uni.showModal({
|
||||
title: "提现申请提示",
|
||||
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.zhifubaoName + '\n\n提现金额:' + that
|
||||
.money + '元\n\n提现手续费:' + shouxufei +
|
||||
'\n\n收款人账号:' + that.zhifubao + '',
|
||||
success: (e) => {
|
||||
if (e.confirm) {
|
||||
// that.money = money
|
||||
that.getMoney();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.showModal({
|
||||
title: "提现申请提示",
|
||||
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.zhifubaoName + '\n\n提现金额:' + that
|
||||
.money + '元\n\n收款人账号:' + that.zhifubao +
|
||||
'',
|
||||
success: (e) => {
|
||||
if (e.confirm) {
|
||||
// that.money = money
|
||||
that.getMoney();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: "提现金额必须大于或等于" + cashMoney + "元才可提现"
|
||||
});
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: "您的余额不足"
|
||||
});
|
||||
}
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: "/me/invite/zhifubao"
|
||||
})
|
||||
|
||||
if (!/^\d+(\.\d{1,2})?$/.test(that.money)) {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '请输入正确金额,不能包含中文,英文,特殊字符和小数'
|
||||
});
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/login/login'
|
||||
});
|
||||
}
|
||||
},
|
||||
getOut1(money) {
|
||||
let that = this;
|
||||
let token = that.token
|
||||
let userId = that.userId
|
||||
if (token) {
|
||||
if (that.zhifubao && that.zhifubaoName) {
|
||||
if (parseFloat(this.mayMoney).toFixed(1) >= parseFloat(money)) {
|
||||
if (parseFloat(money).toFixed(1) >= 10) {
|
||||
if (this.shouxufei > 0) {
|
||||
let shouxufei = parseFloat(money * this.shouxufei).toFixed(2);
|
||||
uni.showModal({
|
||||
title: '提现申请提示',
|
||||
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.zhifubaoName + '\n\n提现金额:' + money +
|
||||
'元\n\n提现手续费:' + shouxufei +
|
||||
'\n\n收款人账号:' + that.zhifubao + '',
|
||||
confirmColor: '#ff7581',
|
||||
success: e => {
|
||||
if (e.confirm) {
|
||||
this.money = money
|
||||
that.getMoney();
|
||||
// uni.showToast({
|
||||
// icon: 'none',
|
||||
// title: '提现成功'
|
||||
// })
|
||||
}
|
||||
let shouxufei = parseFloat(that.money * that.shouxufei).toFixed(2);
|
||||
if (parseFloat(that.mayMoney).toFixed(2) >= parseFloat(that.money)) {
|
||||
// if (parseFloat(that.mayMoney).toFixed(1) >= parseFloat(that.money) + shouxufei * 1) {
|
||||
if (parseFloat(that.money).toFixed(2) >= parseFloat(cashMoney)) {
|
||||
if (that.shouxufei > 0) {
|
||||
uni.showModal({
|
||||
title: "提现申请提示",
|
||||
content: `每日只可提现${this.withdrawNum}次`,
|
||||
success: (e) => {
|
||||
if (e.confirm) {
|
||||
uni.showModal({
|
||||
title: "提现申请提示",
|
||||
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.zhifubaoName + '\n\n提现金额:' + that
|
||||
.money + '元\n\n收款人账号:' + that.zhifubao + '',
|
||||
// content: '请仔细确认收款人信息\n\n收款人姓名:' + that.zhifubaoName + '\n\n提现金额:' + that
|
||||
// .money + '元\n\n提现手续费:' + shouxufei +
|
||||
// '\n\n收款人账号:' + that.zhifubao + '',
|
||||
success: (e) => {
|
||||
if (e.confirm) {
|
||||
// that.money = money
|
||||
that.getMoney();
|
||||
that.getMoneyDetail();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.showModal({
|
||||
title: '提现申请提示',
|
||||
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.zhifubaoName + '\n\n提现金额:' + money +
|
||||
'元\n\n收款人账号:' + that.zhifubao +
|
||||
'',
|
||||
success: e => {
|
||||
if (e.confirm) {
|
||||
this.money = money
|
||||
that.getMoney();
|
||||
// uni.showToast({
|
||||
// icon: 'none',
|
||||
// title: '提现成功'
|
||||
// })
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '提现金额必须大于或等于10元才可提现'
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
uni.showModal({
|
||||
title: "提现申请提示",
|
||||
content: '每日只可提现一次',
|
||||
success: (e) => {
|
||||
if (e.confirm) {
|
||||
uni.showModal({
|
||||
title: "提现申请提示",
|
||||
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.zhifubaoName + '\n\n提现金额:' + that
|
||||
.money + '元\n\n收款人账号:' + that.zhifubao +
|
||||
'',
|
||||
success: (e) => {
|
||||
if (e.confirm) {
|
||||
// that.money = money
|
||||
that.getMoney();
|
||||
that.getMoneyDetail();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '您的余额不足'
|
||||
title: "提现金额必须大于或等于" + cashMoney + "元才可提现"
|
||||
});
|
||||
}
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/me/invite/zhifubao'
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: "您的余额不足"
|
||||
});
|
||||
}
|
||||
} else {
|
||||
|
|
@ -331,12 +608,19 @@
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
<style lang="scss" scoped>
|
||||
// @import '../../static/css/index.css';
|
||||
.rule-btn {
|
||||
font-size: 16px;
|
||||
// padding: 2rpx 10rpx;
|
||||
// border: 1px solid rgba(255, 255, 255, .8);
|
||||
// border-radius: 4rpx;
|
||||
}
|
||||
|
||||
.view2-view-text {
|
||||
font-size: 14px;
|
||||
|
|
@ -370,4 +654,51 @@
|
|||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.moneyList {
|
||||
.item {
|
||||
background: white;
|
||||
padding: 32rpx;
|
||||
margin: 32rpx;
|
||||
font-size: 28rpx;
|
||||
box-shadow: 7px 9px 34px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 16upx;
|
||||
}
|
||||
|
||||
.item:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.centre {
|
||||
text-align: center;
|
||||
padding: 200rpx 0;
|
||||
font-size: 32rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
image {
|
||||
width: 360rpx;
|
||||
height: 360rpx;
|
||||
// margin-bottom: 20rpx;
|
||||
margin: 0 auto 20rpx;
|
||||
// border: 1px dotted #000000;
|
||||
}
|
||||
|
||||
.tips {
|
||||
font-size: 34rpx;
|
||||
color: #999999;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin: 80rpx auto;
|
||||
width: 600rpx;
|
||||
border-radius: 32rpx;
|
||||
line-height: 90rpx;
|
||||
color: #ffffff;
|
||||
font-size: 34rpx;
|
||||
background: #ff7581;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,137 +1,133 @@
|
|||
<template>
|
||||
<view style="text-align: left">
|
||||
<view v-if="list.length" v-for="(item, index) in list" :key="index" class="item">
|
||||
<view>
|
||||
<view style="margin-bottom: 8upx;text-align: right;">
|
||||
<text style="margin-bottom: 8upx;color: green" v-if="item.state==1"> 提现成功</text>
|
||||
<text style="margin-bottom: 8upx;color: green" v-if="item.state==0"> 提现中</text>
|
||||
<text style="margin-bottom: 8upx;color: #FD6416" v-if="item.state==-1"> 提现失败</text>
|
||||
</view>
|
||||
<view style="text-align: left">
|
||||
<view v-if="list.length" v-for="(item, index) in list" :key="index" class="item">
|
||||
<view>
|
||||
<view style="margin-bottom: 8upx;text-align: right;">
|
||||
<text style="margin-bottom: 8upx;color: green" v-if="item.state===1"> 提现成功</text>
|
||||
<text style="margin-bottom: 8upx;color: green" v-if="item.state===0"> 提现中</text>
|
||||
<text style="margin-bottom: 8upx;color: #FD6416" v-if="item.state===-1"> 提现失败</text>
|
||||
</view>
|
||||
|
||||
<view style="color: #999999;font-size: 28upx;">
|
||||
<view style="margin-bottom: 8upx"> 收款人账号:{{item.zhifubao}}</view>
|
||||
<view style="margin-bottom: 8upx"> 收款人姓名:{{item.zhifubaoName}}</view>
|
||||
<view style="margin-bottom: 8upx"> 发起时间:{{item.createAt}}</view>
|
||||
<view style="margin-bottom: 8upx" v-if="item.state==1">成功时间 {{item.outAt}}</view>
|
||||
<view style="margin-bottom: 8upx;color: #FD6416" v-if="item.state==-1">{{item.refund}}</view>
|
||||
<view style="color: #999999;font-size: 28upx;">
|
||||
<view style="margin-bottom: 8upx"> 收款人账号:{{ item.zhifubao }}</view>
|
||||
<view style="margin-bottom: 8upx"> 收款人姓名:{{ item.zhifubaoName }}</view>
|
||||
<view style="margin-bottom: 8upx"> 发起时间:{{ item.createAt }}</view>
|
||||
<view style="margin-bottom: 8upx" v-if="item.state===1">成功时间 {{ item.outAt }}</view>
|
||||
<view style="margin-bottom: 8upx;color: #FD6416" v-if="item.state===-1">{{ item.refund }}</view>
|
||||
|
||||
<view style="margin-bottom: 8upx;text-align: right;">
|
||||
<!-- 提现金额: -->
|
||||
<text style="color: #FD6416;font-size: 32upx;font-weight: 600"> ¥{{item.money}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="margin-bottom: 8upx;text-align: right;">
|
||||
<!-- 提现金额: -->
|
||||
<text style="color: #FD6416;font-size: 32upx;font-weight: 600"> ¥{{ item.money }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="page-box" v-if="!list.length">
|
||||
<view class="centre">
|
||||
<image src="../../static/images/learn/none.png" mode=""></image>
|
||||
<view class="tips">
|
||||
暂无记录
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="page-box" v-if="!list.length">
|
||||
<view class="centre">
|
||||
<image src="../../static/images/learn/none.png" mode=""></image>
|
||||
<view class="tips">
|
||||
暂无记录
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
list: [],
|
||||
page: 1,
|
||||
limit: 10
|
||||
}
|
||||
},
|
||||
onLoad: function(e) {
|
||||
this.getMoney();
|
||||
},
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
list: [],
|
||||
page: 1,
|
||||
limit: 10,
|
||||
totalCount: 0,
|
||||
}
|
||||
},
|
||||
onLoad: function (e) {
|
||||
this.getMoney();
|
||||
},
|
||||
|
||||
methods: {
|
||||
getMoney() {
|
||||
let that = this;
|
||||
let token = uni.getStorageSync('token')
|
||||
methods: {
|
||||
getMoney() {
|
||||
let that = this;
|
||||
let token = uni.getStorageSync('token')
|
||||
|
||||
if (token) {
|
||||
//可以提现金额查询预估收入查询
|
||||
let data = {
|
||||
page: that.page,
|
||||
limit: that.limit
|
||||
}
|
||||
that.$u.api.selectPay(data).then(res => {
|
||||
if (that.page == 1) {
|
||||
that.list = res.data.list
|
||||
uni.stopPullDownRefresh();
|
||||
return
|
||||
}
|
||||
that.list = res.data.list;
|
||||
})
|
||||
// this.$Request.getT("/cash/selectCashOutList/" + userId).then(res => {
|
||||
// if (res.status === 0 && res.data) {
|
||||
// that.list = res.data;
|
||||
// }
|
||||
// uni.hideLoading();
|
||||
// });
|
||||
}
|
||||
if (token) {
|
||||
//可以提现金额查询预估收入查询
|
||||
let data = {
|
||||
page: this.page,
|
||||
limit: this.limit
|
||||
}
|
||||
this.$Request.getT('app/cash/selectPayDetails', data).then(res => {
|
||||
this.totalCount = res.data.totalCount;
|
||||
if (res.data.list.length > 0) {
|
||||
this.list = [...this.list, ...res.data.list];
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
onReachBottom: function() {
|
||||
this.page = this.page + 1;
|
||||
this.getMoney();
|
||||
},
|
||||
onPullDownRefresh: function() {
|
||||
this.page = 1;
|
||||
// that.list = []
|
||||
this.getMoney();
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
onReachBottom: function () {
|
||||
if (this.page * this.limit < this.totalCount) {
|
||||
this.page = this.page + 1;
|
||||
this.getMoney();
|
||||
}
|
||||
},
|
||||
onPullDownRefresh: function () {
|
||||
this.page = 1;
|
||||
// that.list = []
|
||||
this.getMoney();
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
/* @import "../../static/css/index.css"; */
|
||||
/* @import "../../static/css/index.css"; */
|
||||
|
||||
page {
|
||||
background: #FFFFFF;
|
||||
}
|
||||
page {
|
||||
background: #FFFFFF;
|
||||
}
|
||||
|
||||
.item {
|
||||
background: white;
|
||||
padding: 32rpx;
|
||||
margin: 32rpx;
|
||||
font-size: 28rpx;
|
||||
box-shadow: 7px 9px 34px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 16upx;
|
||||
}
|
||||
.item {
|
||||
background: white;
|
||||
padding: 32rpx;
|
||||
margin: 32rpx;
|
||||
font-size: 28rpx;
|
||||
box-shadow: 7px 9px 34px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 16upx;
|
||||
}
|
||||
|
||||
.centre {
|
||||
text-align: center;
|
||||
margin: 200rpx auto;
|
||||
font-size: 32rpx;
|
||||
.centre {
|
||||
text-align: center;
|
||||
padding: 200rpx 0;
|
||||
font-size: 32rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
image {
|
||||
width: 360rpx;
|
||||
height: 360rpx;
|
||||
// margin-bottom: 20rpx;
|
||||
margin: 0 auto 20rpx;
|
||||
// border: 1px dotted #000000;
|
||||
}
|
||||
image {
|
||||
width: 360rpx;
|
||||
height: 360rpx;
|
||||
// margin-bottom: 20rpx;
|
||||
margin: 0 auto 20rpx;
|
||||
// border: 1px dotted #000000;
|
||||
}
|
||||
|
||||
.tips {
|
||||
font-size: 34rpx;
|
||||
color: #999999;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.tips {
|
||||
font-size: 34rpx;
|
||||
color: #999999;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin: 80rpx auto;
|
||||
width: 600rpx;
|
||||
border-radius: 32rpx;
|
||||
line-height: 90rpx;
|
||||
color: #ffffff;
|
||||
font-size: 34rpx;
|
||||
background: #ff7581;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
margin: 80rpx auto;
|
||||
width: 600rpx;
|
||||
border-radius: 32rpx;
|
||||
line-height: 90rpx;
|
||||
color: #ffffff;
|
||||
font-size: 34rpx;
|
||||
background: #ff7581;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,768 @@
|
|||
<!-- 我的邀请 -->
|
||||
<template>
|
||||
<view>
|
||||
<u-image src="/me/static/invite/juxing.png" alt="" width="100%" mode="widthFix"></u-image>
|
||||
<view class="padding" style="position: relative;height: 360rpx;">
|
||||
<u-image src="@/me/static/invite/fenxiang.png" alt="" width="100%" height="100%"></u-image>
|
||||
<view class="text-center padding-top yaoqing">
|
||||
<view class="margin-top-xl margin-bottom-sm padding-top-sm text-xxl text-red text-bold">
|
||||
{{invitationCode}}
|
||||
</view>
|
||||
<!-- #ifdef H5 -->
|
||||
<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- #ifdef APP -->
|
||||
<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- #ifdef MP-TOUTIAO || MP-KUAISHOU -->
|
||||
<u-button open-type="share" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<u-button open-type="share" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef MP-KUAISHOU -->
|
||||
<u-button style="margin-left: 50rpx;" @click.stop="onSaveImg()" :custom-style="customStyle"
|
||||
:hair-line="false" shape="circle" size="mini" :ripple="true">保存海报</u-button>
|
||||
<!-- #endif -->
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="margin padding bg-white radius" v-if="inviterList.length">
|
||||
<view class="flex justify-between" style="line-height: 80rpx;" v-for="(item, index) in inviterList"
|
||||
:key='index'>
|
||||
<view class="flex">
|
||||
<!-- <u-image :src="item.avatar == null?avatar:item.avatar" width="40px" mode="widthFix"></u-image> -->
|
||||
<image src="../static/invite/5.png" style="width: 80rpx;" mode="widthFix"></image>
|
||||
<text class="margin-left-sm">{{item.userName}}</text>
|
||||
</view>
|
||||
<view style="width: 160rpx;">
|
||||
<text>获得</text>
|
||||
<text class="margin-left-xs text-red">{{item.money}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="padding" style="position: relative;height: 160px;">
|
||||
<u-image src="@/me/static/invite/yaoqing.png" alt="" width="100%" height="100%"></u-image>
|
||||
<view class="text-center padding-top flex justify-center flex-direction zhanji">
|
||||
<view class="flex justify-around margin-top-sm">
|
||||
<view>
|
||||
<view class="margin-bottom-sm">已邀请</view>
|
||||
<view class="text-red"><text class="text-bold u-font-18">{{inviterNumber}}</text>人</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="margin-bottom-sm">累计收益</view>
|
||||
<view class="text-red"><text class="text-bold u-font-18">{{cumulativeRevenue}}</text>元</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="margin-bottom-sm">已提现</view>
|
||||
<view class="text-red">¥<text class="text-bold u-font-18">{{withdrawn}}</text></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="padding" style="position: relative;height: 250rpx;">
|
||||
<u-image src="@/me/static/invite/jiqiao.png" alt="" width="100%" height="100%"></u-image>
|
||||
<view class="padding-top jiqiao" style="">
|
||||
<view class="padding-top-xl padding-lr padding-bottom" style="line-height: 48rpx;">
|
||||
<block v-if="price2==0">
|
||||
<view class="flex padding-sm" style="background-color: #ffffff;">
|
||||
<text class="cuIcon-title text-yellow"></text>
|
||||
<view>邀请好友可得开通会员及消费金额 {{price}}%的佣金奖励</view>
|
||||
</view>
|
||||
</block>
|
||||
<block v-else>
|
||||
<view class="flex padding-sm" style="background-color: #ffffff;">
|
||||
<text class="cuIcon-title text-yellow"></text>
|
||||
<view>可得一级好友开通会员及消费金额 {{price}}%的佣金奖励</view>
|
||||
</view>
|
||||
<view class="flex padding-sm" style="background-color: #ffffff;">
|
||||
<text class="cuIcon-title text-yellow"></text>
|
||||
<view>可得二级好友开通会员及消费金额 {{price2}}%的佣金奖励</view>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<tki-qrcode ref="qrcode" :val="erweima" :size="200" background="#fff" foreground="#000" pdground="#000"
|
||||
:onval="true" :loadMake="true" @result="qrR" :show="false"></tki-qrcode>
|
||||
<view class="cu-modal" :class="modalName == 'Image' ? 'show' : ''" @tap="hideModal">
|
||||
<view class="cu-dialog" v-if="bgImg && erweimapath && haibaoShow" @tap="hideModal">
|
||||
<view class="bg-img">
|
||||
<wm-poster @success="posterSuccess" @successH5="successH5" :imgSrc="bgImg"
|
||||
:Referrer="'我的邀请码:'+invitationCode" :QrSrc="erweimapath" :LineType="false"></wm-poster>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let settingWritePhotosAlbum = false;
|
||||
import tkiQrcode from '../../components/tki-qrcode/tki-qrcode.vue';
|
||||
import wmPoster from '../components/wm-poster/wm-posterorders.vue';
|
||||
import config from '../../common/config.js'
|
||||
export default {
|
||||
components: {
|
||||
tkiQrcode,
|
||||
wmPoster
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
erweimapath: '',
|
||||
poster: {},
|
||||
qrShow: false,
|
||||
haibaoImg: null,
|
||||
haibaoShow: false,
|
||||
modalName: '',
|
||||
canvasId: 'default_PosterCanvasId',
|
||||
avatar: '../../static/images/logo.png',
|
||||
customStyle: {
|
||||
background: '#FFE0E0',
|
||||
border: '0',
|
||||
color: 'rgb(254,30,35)',
|
||||
fontSize: '12px',
|
||||
fontWeight: '500',
|
||||
padding: '15px 20px',
|
||||
},
|
||||
page: 1,
|
||||
limit: 10,
|
||||
inviterName: '', //邀请码
|
||||
cumulativeRevenue: '', //累计收益
|
||||
inviterNumber: '', //邀请人数
|
||||
withdrawn: '', //已提现
|
||||
inviterList: [],
|
||||
erweima: '',
|
||||
bgImg: '',
|
||||
tuiguang: '',
|
||||
invitationCode: 0,
|
||||
price: 0,
|
||||
price2: 0,
|
||||
h5SaveImg: '',
|
||||
modalName: '',
|
||||
haibaoImgH5: '',
|
||||
qdCode: '', //渠道码
|
||||
}
|
||||
},
|
||||
onShareAppMessage(res) {
|
||||
return {
|
||||
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
|
||||
.qdCode, //这是为了传参 onload(data){let id=data.id;}
|
||||
title: this.tuiguang,
|
||||
imageUrl: this.bgImg
|
||||
}
|
||||
},
|
||||
onShareTimeline(res) {
|
||||
return {
|
||||
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
|
||||
.qdCode, //这是为了传参 onload(data){let id=data.id;}
|
||||
title: this.tuiguang,
|
||||
imageUrl: this.bgImg
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getInviter()
|
||||
this.queryInviter()
|
||||
|
||||
this.invitationCode = uni.getStorageSync('invitationCode')
|
||||
this.getUserInfoBl()
|
||||
this.getBgImg()
|
||||
if (uni.getStorageSync('qdCode')) {
|
||||
this.qdCode = uni.getStorageSync('qdCode')
|
||||
}
|
||||
// h5携带邀请码去首页
|
||||
// #ifdef H5
|
||||
this.erweima = config.APIHOST2 + '/?invitation=' + this
|
||||
.invitationCode + '&qdCode=' + this.qdCode
|
||||
// #endif
|
||||
// app直接去app注册页面
|
||||
// #ifdef APP
|
||||
this.erweima = config.APIHOST2 + '/pages/login/registerApp/?invitation=' + this
|
||||
.invitationCode + '&qdCode=' + this.qdCode
|
||||
// #endif
|
||||
// #ifdef MP-WEIXIN
|
||||
this.getWxEq()
|
||||
// #endif
|
||||
// #ifdef MP-TOUTIAO
|
||||
this.getTouTiao()
|
||||
// #endif
|
||||
},
|
||||
methods: {
|
||||
//获取用户分销比例
|
||||
getUserInfoBl() {
|
||||
this.$Request.getT('/app/user/selectUserById').then(res => {
|
||||
if (res.code == 0) {
|
||||
//一级分销
|
||||
if (res.data.rate) {
|
||||
this.price = (Number(res.data.rate) * 100).toFixed(0)
|
||||
} else {
|
||||
this.price = 0
|
||||
}
|
||||
//二级分销
|
||||
if (res.data.twoRate) {
|
||||
this.price2 = (Number(res.data.twoRate) * 100).toFixed(0)
|
||||
} else {
|
||||
this.price2 = 0
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
//获取头条二维码
|
||||
getTouTiao() {
|
||||
let that = this
|
||||
uni.downloadFile({
|
||||
url: config.APIHOST +
|
||||
'/app/invite/dyCreateQr?invitationCode=' + that
|
||||
.invitationCode + ',' + that.qdCode + '&page=/pages/index/index',
|
||||
success: (res) => {
|
||||
console.log(res)
|
||||
if (res.statusCode === 200) {
|
||||
that.erweimapath = res.tempFilePath
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
console.log(err)
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
//获取微信二维码
|
||||
getWxEq() {
|
||||
let that = this
|
||||
uni.downloadFile({
|
||||
url: config.APIHOST +
|
||||
'/app/invite/mpCreateQr?invitationCode=' + that
|
||||
.invitationCode + ',' + that.qdCode,
|
||||
success: (res) => {
|
||||
console.log(res)
|
||||
if (res.statusCode === 200) {
|
||||
that.erweimapath = res.tempFilePath
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
console.log(err)
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
sharurl() {
|
||||
let that = this;
|
||||
uni.showModal({
|
||||
title: '链接推广',
|
||||
content: this.tuiguang + this.erweima,
|
||||
showCancel: true,
|
||||
cancelText: '关闭',
|
||||
confirmText: '一键复制',
|
||||
success: res => {
|
||||
if (res.confirm) {
|
||||
uni.setClipboardData({
|
||||
data: this.tuiguang + this.erweima,
|
||||
success: function() {
|
||||
console.log('success');
|
||||
uni.showToast({
|
||||
title: '复制成功',
|
||||
duration: 1000,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
posterSuccess(haibaoImg) {
|
||||
this.haibaoImg = haibaoImg;
|
||||
this.modalName = 'Image';
|
||||
uni.hideLoading();
|
||||
},
|
||||
successH5(haibaoImg) {
|
||||
this.haibaoImgH5 = haibaoImg
|
||||
uni.previewImage({
|
||||
urls: [haibaoImg],
|
||||
current: 1,
|
||||
})
|
||||
},
|
||||
showModal() {
|
||||
// #ifndef H5
|
||||
if (!this.haibaoImg) {
|
||||
this.haibaoShow = true;
|
||||
uni.showLoading({
|
||||
title: '海报生成中'
|
||||
});
|
||||
} else {
|
||||
this.modalName = 'Image';
|
||||
}
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
let ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger') !== -1) {
|
||||
//微信浏览器
|
||||
if (!this.haibaoImg) {
|
||||
this.haibaoShow = true;
|
||||
uni.showLoading({
|
||||
title: '海报生成中'
|
||||
});
|
||||
} else {
|
||||
this.modalName = 'Image';
|
||||
}
|
||||
} else {
|
||||
if (!this.haibaoImgH5) {
|
||||
this.haibaoShow = true;
|
||||
uni.showLoading({
|
||||
title: '海报生成中'
|
||||
});
|
||||
} else {
|
||||
uni.previewImage({
|
||||
urls: [this.haibaoImgH5],
|
||||
current: 1,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
hideModal() {
|
||||
this.modalName = null;
|
||||
},
|
||||
qrR(path) {
|
||||
this.erweimapath = path;
|
||||
},
|
||||
getInviter() {
|
||||
let data = {
|
||||
page: this.page,
|
||||
limit: this.limit
|
||||
}
|
||||
this.$u.api.inviter(data).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.inviterList = res.data.list
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
duration: 1000,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
queryInviter() {
|
||||
this.$u.api.queryInviter().then(res => {
|
||||
if (res.code == 0) {
|
||||
this.cumulativeRevenue = res.data.inviteMoney.moneySum //累计收益
|
||||
this.inviterNumber = res.data.inviteCount //邀请人数
|
||||
this.withdrawn = res.data.inviteMoney.cashOut //已提现
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
duration: 1000,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
goNav(e) {
|
||||
uni.navigateTo({
|
||||
url: e
|
||||
})
|
||||
},
|
||||
|
||||
//获取背景图
|
||||
getBgImg() {
|
||||
this.$u.get('app/banner/selectBannerList?classify=5').then(res => {
|
||||
if (res.code == 0) {
|
||||
this.bgImg = res.data[0].imageUrl
|
||||
this.tuiguang = res.data[0].describes
|
||||
console.log(this.bgImg)
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
duration: 1000,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
//生成h5海报
|
||||
createH5Poster() {
|
||||
let that = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.showLoading({
|
||||
title: '海报生成中'
|
||||
});
|
||||
const ctx = uni.createCanvasContext('poster');
|
||||
ctx.fillRect(0, 0, 375, 673);
|
||||
ctx.setFillStyle("#FFF");
|
||||
ctx.fillRect(0, 0, 375, 673);
|
||||
let imgUrl = that.bgImg;
|
||||
uni.downloadFile({
|
||||
url: imgUrl,
|
||||
success: (res) => {
|
||||
console.log(res, '***************')
|
||||
if (res.statusCode === 200) {
|
||||
uni.downloadFile({
|
||||
url: that.erweima,
|
||||
success: (res2) => {
|
||||
console.log(res2)
|
||||
if (res.statusCode === 200) {
|
||||
ctx.drawImage(res.tempFilePath, 0, 0, 375,
|
||||
500);
|
||||
// 长按识别二维码访问
|
||||
let textTop = 0;
|
||||
ctx.setFontSize(19);
|
||||
ctx.setFillStyle('#333');
|
||||
ctx.fillText("长按识别图中二维码", 17, textTop + 590);
|
||||
// 二维码
|
||||
ctx.drawImage(res2.tempFilePath, 238, textTop +
|
||||
526, 120, 120);
|
||||
ctx.draw(true, () => {
|
||||
// canvas画布转成图片并返回图片地址
|
||||
uni.canvasToTempFilePath({
|
||||
canvasId: 'poster',
|
||||
width: 375,
|
||||
height: 673,
|
||||
success: (res) => {
|
||||
console.log(
|
||||
"海报制作成功!"
|
||||
);
|
||||
resolve(res
|
||||
.tempFilePath
|
||||
);
|
||||
},
|
||||
fail: () => {
|
||||
uni
|
||||
.hideLoading();
|
||||
reject();
|
||||
}
|
||||
})
|
||||
});
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
console.log(err)
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
},
|
||||
complete: com => {
|
||||
console.log(com)
|
||||
uni.showToast({
|
||||
title: com,
|
||||
icon: 'none'
|
||||
});
|
||||
},
|
||||
});
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
// that.yu.toast(err)
|
||||
console.log(err)
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none',
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
//生成海报
|
||||
createPoster() {
|
||||
let that = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.showLoading({
|
||||
title: '海报生成中'
|
||||
});
|
||||
const ctx = uni.createCanvasContext('poster');
|
||||
ctx.fillRect(0, 0, 375, 673);
|
||||
ctx.setFillStyle("#FFF");
|
||||
ctx.fillRect(0, 0, 375, 673);
|
||||
let imgUrl = that.bgImg;
|
||||
uni.downloadFile({
|
||||
url: imgUrl,
|
||||
success: (res) => {
|
||||
console.log(res, '***************')
|
||||
if (res.statusCode === 200) {
|
||||
uni.downloadFile({
|
||||
url: config.APIHOST +
|
||||
'/app/invite/mpCreateQr?invitationCode=' + that
|
||||
.invitationCode,
|
||||
// url: 'https://jiaoyu.xianmxkj.com/sqx_fast/app/invite/mpCreateQr?invitationCode=' +
|
||||
// that.invitationCode,
|
||||
success: (res2) => {
|
||||
console.log(res2)
|
||||
if (res.statusCode === 200) {
|
||||
ctx.drawImage(res.tempFilePath, 0, 0, 375,
|
||||
500);
|
||||
// 长按识别二维码访问
|
||||
let textTop = 0;
|
||||
ctx.setFontSize(19);
|
||||
ctx.setFillStyle('#333');
|
||||
ctx.fillText("长按识别图中二维码", 17, textTop + 590);
|
||||
// 二维码
|
||||
ctx.drawImage(res2.tempFilePath, 238, textTop +
|
||||
526, 120, 120);
|
||||
ctx.draw(true, () => {
|
||||
// canvas画布转成图片并返回图片地址
|
||||
uni.canvasToTempFilePath({
|
||||
canvasId: 'poster',
|
||||
width: 375,
|
||||
height: 673,
|
||||
success: (res) => {
|
||||
console.log(
|
||||
"海报制作成功!"
|
||||
);
|
||||
resolve(res
|
||||
.tempFilePath
|
||||
);
|
||||
},
|
||||
fail: () => {
|
||||
uni
|
||||
.hideLoading();
|
||||
reject();
|
||||
}
|
||||
})
|
||||
});
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
console.log(err)
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
},
|
||||
complete: com => {
|
||||
console.log(com)
|
||||
uni.showToast({
|
||||
title: com,
|
||||
icon: 'none'
|
||||
});
|
||||
},
|
||||
});
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
// that.yu.toast(err)
|
||||
console.log(err)
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '海报制作失败,图片下载失败',
|
||||
icon: 'none',
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
// 保存图片
|
||||
async onSaveImg() {
|
||||
this.showModal();
|
||||
return
|
||||
// #ifndef MP-WEIXIN
|
||||
this.showModal();
|
||||
// #endif
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
let imgUrl = await this.createPoster();
|
||||
uni.showLoading({
|
||||
title: '海报下载中'
|
||||
});
|
||||
if (settingWritePhotosAlbum) {
|
||||
uni.getSetting({
|
||||
success: res => {
|
||||
if (res.authSetting['scope.writePhotosAlbum']) {
|
||||
uni.saveImageToPhotosAlbum({
|
||||
filePath: imgUrl,
|
||||
success: () => {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '保存成功'
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '请先在设置页面打开“保存相册”使用权限',
|
||||
confirmText: '去设置',
|
||||
cancelText: '算了',
|
||||
success: data => {
|
||||
if (data.confirm) {
|
||||
uni.hideLoading();
|
||||
uni.openSetting();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
settingWritePhotosAlbum = true;
|
||||
uni.authorize({
|
||||
scope: 'scope.writePhotosAlbum',
|
||||
success: () => {
|
||||
uni.saveImageToPhotosAlbum({
|
||||
filePath: imgUrl,
|
||||
success: () => {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '保存成功'
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.modal {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1110;
|
||||
opacity: 0;
|
||||
outline: 0;
|
||||
text-align: center;
|
||||
-ms-transform: scale(1.185);
|
||||
transform: scale(1.185);
|
||||
backface-visibility: hidden;
|
||||
perspective: 2000upx;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
transition: all 0.3s ease-in-out 0s;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.modal.show {
|
||||
opacity: 1;
|
||||
transition-duration: 0.3s;
|
||||
-ms-transform: scale(1);
|
||||
transform: scale(1);
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
page {
|
||||
background: #E0EFFF;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.poster_canvas {
|
||||
width: 750upx;
|
||||
height: 1334upx;
|
||||
position: fixed;
|
||||
top: -10000upx;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.yaoqing {
|
||||
width: 100%;
|
||||
height: 136px;
|
||||
position: absolute;
|
||||
margin: auto;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
/* background-image: url('@/me/static/invite/fenxiang.png'); */
|
||||
/* background-size: 100%; */
|
||||
/* background-repeat: no-repeat; */
|
||||
}
|
||||
|
||||
.zhanji {
|
||||
width: 100%;
|
||||
height: 119px;
|
||||
position: absolute;
|
||||
margin: auto;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
/* background-image: url('@/me/static/invite/yaoqing.png'); */
|
||||
/* background-size: 100%; */
|
||||
/* background-repeat: no-repeat; */
|
||||
}
|
||||
|
||||
.jiqiao {
|
||||
width: 100%;
|
||||
height: 160rpx;
|
||||
position: absolute;
|
||||
margin: auto;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
/* background-image: url('@/me/static/invite/jiqiao.png');
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat; */
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,73 +1,129 @@
|
|||
<!-- 我的邀请 -->
|
||||
<template>
|
||||
<view>
|
||||
<u-image src="/me/static/invite/juxing.png" alt="" width="100%" mode="widthFix"></u-image>
|
||||
<view class="padding" style="position: relative;height: 360rpx;">
|
||||
<u-image src="@/me/static/invite/fenxiang.png" alt="" width="100%" height="100%"></u-image>
|
||||
<view class="text-center padding-top yaoqing">
|
||||
<view class="margin-top-xl margin-bottom-sm padding-top-sm text-xxl text-red text-bold">
|
||||
<view class="min-page">
|
||||
<u-navbar title="分享好友" back-icon-color="#fff" :background="background" immersive :border-bottom="false"
|
||||
title-color="#fff"></u-navbar>
|
||||
<view class="u-relative">
|
||||
<u-image src="/me/static/invite/top-bg.png" alt="" width="100%" mode="widthFix"></u-image>
|
||||
<view class="u-absolute top-title">
|
||||
<view class="u-flex u-row-center">
|
||||
<u-image src="/me/static/invite/title.png" alt="" width="544rpx" mode="widthFix"></u-image>
|
||||
</view>
|
||||
<!-- <view class="u-flex u-row-right" style="padding-right:70rpx;">
|
||||
<u-image src="/me/static/invite/rule.png" alt="" width="400rpx" mode="widthFix"></u-image>
|
||||
</view> -->
|
||||
<view class="u-m-t-24 color-fff u-font-28 u-text-left text-shadow "
|
||||
style=" padding-left: 248rpx;">
|
||||
<view>新人首次签到成功送1元现金红包</view>
|
||||
<view>满15个新人完成签到额外送9.9元红包</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class=" inviteBox u-relative">
|
||||
<view class="top">
|
||||
<u-image src="/me/static/invite/bg1.png" alt="" width="422rpx" height="76rpx"></u-image>
|
||||
<view class="u-absolute font-bold">
|
||||
<text>邀请详情</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-font-32 font-bold u-text-center color-000" style="padding-top: 84rpx;">
|
||||
您的邀请码
|
||||
</view>
|
||||
<view class="text-center ">
|
||||
<view class=" u-m-t-32 text-xxl text-red text-bold u-m-b-32">
|
||||
{{invitationCode}}
|
||||
</view>
|
||||
<!-- #ifdef H5 -->
|
||||
<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
<view class="u-flex u-row-between" style="padding: 0 88rpx;">
|
||||
<!-- #ifdef H5 -->
|
||||
<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- #ifdef APP -->
|
||||
<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef APP -->
|
||||
<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- #ifdef MP-TOUTIAO || MP-KUAISHOU -->
|
||||
<u-button open-type="share" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP-TOUTIAO || MP-KUAISHOU -->
|
||||
<u-button open-type="share" :custom-style="customStyle" :hair-line="false"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<u-button open-type="share" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef MP-KUAISHOU -->
|
||||
<u-button style="margin-left: 50rpx;" @click.stop="onSaveImg()" :custom-style="customStyle"
|
||||
:hair-line="false" shape="circle" size="mini" :ripple="true">保存海报</u-button>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<u-button open-type="share" :custom-style="customStyle" :hair-line="false"
|
||||
:ripple="true">一键分享</u-button>
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef MP-KUAISHOU -->
|
||||
<u-button style="margin-left: 50rpx;" @click.stop="onSaveImg()" :custom-style="customStyle"
|
||||
:hair-line="false" :ripple="true">保存海报</u-button>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="margin padding bg-white radius" v-if="inviterList.length">
|
||||
<view class="flex justify-between" style="line-height: 80rpx;" v-for="(item, index) in inviterList"
|
||||
:key='index'>
|
||||
<view class="flex">
|
||||
<!-- <u-image :src="item.avatar == null?avatar:item.avatar" width="40px" mode="widthFix"></u-image> -->
|
||||
<image src="../static/invite/5.png" style="width: 80rpx;" mode="widthFix"></image>
|
||||
<text class="margin-left-sm">{{item.userName}}</text>
|
||||
</view>
|
||||
<view style="width: 160rpx;">
|
||||
<text>获得</text>
|
||||
<text class="margin-left-xs text-red">{{item.money}}</text>
|
||||
<view class="gap u-m-t-32"></view>
|
||||
<view class="u-m-t-32">
|
||||
<view class="font-bold color-000 u-font-32 u-text-center">我的邀请战绩</view>
|
||||
<view class="flex justify-around u-m-t-32 u-text-center font-bold" style="line-height: 46rpx;">
|
||||
<view>
|
||||
<view class="">已邀请</view>
|
||||
<view class="text-red u-m-t-16 "><text class=" u-font-40">{{inviterNumber}}</text>人</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="">签到</view>
|
||||
<view class="text-red u-m-t-16 "><text class=" u-font-40">{{inviteSignCount}}</text>人</view>
|
||||
</view>
|
||||
<view @click="toGold">
|
||||
<view class="">金币收益</view>
|
||||
<view class="text-red u-m-t-16 "><text class=" u-font-40">{{earning.inviteGoldMoney}}</text></view>
|
||||
</view>
|
||||
<view @click="toPack">
|
||||
<view class="">红包收益</view>
|
||||
<view class="text-red u-m-t-16 "><text class=" u-font-40">{{earning.inviteMoney}}</text></view>
|
||||
</view>
|
||||
<!-- <view>
|
||||
<view class="">累计收益</view>
|
||||
<view class="text-red u-m-t-16 "><text class=" u-font-40">{{cumulativeRevenue}}</text>元</view>
|
||||
</view> -->
|
||||
|
||||
<!-- <view>
|
||||
<view class="">已提现</view>
|
||||
<view class="text-red u-m-t-16 "><text class="u-font-40">{{withdrawn}}</text>元</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="u-m-t-16 color-999 u-text-center u-p-b-32">好友签到成功可额外获得1元现金红包</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="padding" style="position: relative;height: 160px;">
|
||||
<u-image src="@/me/static/invite/yaoqing.png" alt="" width="100%" height="100%"></u-image>
|
||||
<view class="text-center padding-top flex justify-center flex-direction zhanji">
|
||||
<view class="flex justify-around margin-top-sm" @click="goNav('/me/invite/inviteDet')">
|
||||
<view>
|
||||
<view class="margin-bottom-sm">已邀请</view>
|
||||
<view class="text-red"><text class="text-bold u-font-18">{{inviterNumber}}</text>人</view>
|
||||
<view class="margin u-m-t-40 u-m-b-32 padding bg-white radius-16">
|
||||
<view class="u-font-32 color-333 font-bold u-text-center">已邀请列表</view>
|
||||
<view v-if="inviterList.length" class="u-m-t-20">
|
||||
<view class="flex justify-between u-m-b-20" style="line-height: 80rpx;" v-for="(item, index) in inviterList"
|
||||
:key='index'>
|
||||
<view class="flex">
|
||||
<!-- <u-image :src="item.avatar == null?avatar:item.avatar" width="40px" mode="widthFix"></u-image> -->
|
||||
<view class="u-flex u-relative">
|
||||
<image src="../static/invite/5.png" style="width: 80rpx;" mode="widthFix"></image>
|
||||
<view class="tag-news" v-if="item.userTag==1">新人</view>
|
||||
<text class="tag-no-real" v-if="item.userTag==0">未认证</text>
|
||||
</view>
|
||||
<text class="margin-left-sm">{{item.userName}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<view class="margin-bottom-sm">累计收益</view>
|
||||
<view class="text-red"><text class="text-bold u-font-18">{{cumulativeRevenue}}</text>元</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="margin-bottom-sm">已提现</view>
|
||||
<view class="text-red">¥<text class="text-bold u-font-18">{{withdrawn}}</text></view>
|
||||
<view style="width: 160rpx;" class="u-flex u-row-right font-bold">
|
||||
<text class=" text-red" v-if="item.recordNum>0">已签到</text>
|
||||
<text class=" color-999" v-else>未签到</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="u-p-t-30 u-p-b-30 empty" v-if="hasAjax&&!inviterList.length">
|
||||
<my-empty ></my-empty>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="padding" style="position: relative;height: 250rpx;">
|
||||
<view class="u-p-b-32">
|
||||
<u-loadmore v-if="hasAjax" :status="comStatus" />
|
||||
</view>
|
||||
|
||||
<!-- <view class="padding" style="position: relative;height: 250rpx;">
|
||||
<u-image src="@/me/static/invite/jiqiao.png" alt="" width="100%" height="100%"></u-image>
|
||||
<view class="padding-top jiqiao" style="">
|
||||
<view class="padding-top-xl padding-lr padding-bottom" style="line-height: 48rpx;">
|
||||
|
|
@ -90,7 +146,7 @@
|
|||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
|
||||
<tki-qrcode ref="qrcode" :val="erweima" :size="200" background="#fff" foreground="#000" pdground="#000"
|
||||
|
|
@ -110,14 +166,25 @@
|
|||
let settingWritePhotosAlbum = false;
|
||||
import tkiQrcode from '../../components/tki-qrcode/tki-qrcode.vue';
|
||||
import wmPoster from '../components/wm-poster/wm-posterorders.vue';
|
||||
import myEmpty from '@/components/my-empty.vue';
|
||||
|
||||
import config from '../../common/config.js'
|
||||
export default {
|
||||
components: {
|
||||
tkiQrcode,
|
||||
myEmpty,
|
||||
wmPoster
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading:false,
|
||||
earning: {
|
||||
inviteMoney: 0,
|
||||
inviteGoldMoney: 0,
|
||||
},
|
||||
//已签到人数
|
||||
inviteCount: 0,
|
||||
hasAjax: false,
|
||||
erweimapath: '',
|
||||
poster: {},
|
||||
qrShow: false,
|
||||
|
|
@ -126,16 +193,20 @@
|
|||
modalName: '',
|
||||
canvasId: 'default_PosterCanvasId',
|
||||
avatar: '../../static/images/logo.png',
|
||||
background: {
|
||||
'background-color': 'transparent'
|
||||
},
|
||||
customStyle: {
|
||||
background: '#FFE0E0',
|
||||
border: '0',
|
||||
color: 'rgb(254,30,35)',
|
||||
fontSize: '12px',
|
||||
fontWeight: '500',
|
||||
padding: '15px 20px',
|
||||
background: '#DDDCFF',
|
||||
border: '8rpx',
|
||||
color: '#4544FF',
|
||||
fontSize: '28rpx',
|
||||
fontWeight: '700',
|
||||
padding: '10rpx 32rpx',
|
||||
},
|
||||
page: 1,
|
||||
limit: 10,
|
||||
isEnd:false,
|
||||
inviterName: '', //邀请码
|
||||
cumulativeRevenue: '', //累计收益
|
||||
inviterNumber: '', //邀请人数
|
||||
|
|
@ -150,9 +221,21 @@
|
|||
h5SaveImg: '',
|
||||
modalName: '',
|
||||
haibaoImgH5: '',
|
||||
inviteSignCount:0,
|
||||
qdCode: '', //渠道码
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
comStatus(){
|
||||
if(this.isEnd){
|
||||
return 'nomore'
|
||||
}
|
||||
if(this.loading){
|
||||
return 'loading'
|
||||
}
|
||||
return 'loadmore'
|
||||
}
|
||||
},
|
||||
onShareAppMessage(res) {
|
||||
return {
|
||||
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
|
||||
|
|
@ -181,7 +264,9 @@
|
|||
}
|
||||
// h5携带邀请码去首页
|
||||
// #ifdef H5
|
||||
this.erweima = config.APIHOST2 + '/?invitation=' + this
|
||||
// this.erweima = config.APIHOST2 + '/?invitation=' + this
|
||||
// .invitationCode + '&qdCode=' + this.qdCode
|
||||
this.erweima = config.APIHOST2 + '/pages/login/registerApp/?invitation=' + this
|
||||
.invitationCode + '&qdCode=' + this.qdCode
|
||||
// #endif
|
||||
// app直接去app注册页面
|
||||
|
|
@ -196,7 +281,24 @@
|
|||
this.getTouTiao()
|
||||
// #endif
|
||||
},
|
||||
onReachBottom() {
|
||||
if(this.isEnd||this.loading){
|
||||
return
|
||||
}
|
||||
this.page+=1
|
||||
this.getInviter()
|
||||
},
|
||||
methods: {
|
||||
toGold(){
|
||||
uni.navigateTo({
|
||||
url:'/me/invite/moneyList?moneyType=2&viewType=1'
|
||||
})
|
||||
},
|
||||
toPack(){
|
||||
uni.navigateTo({
|
||||
url:'/me/invite/moneyList?moneyType=1&viewType=1'
|
||||
})
|
||||
},
|
||||
//获取用户分销比例
|
||||
getUserInfoBl() {
|
||||
this.$Request.getT('/app/user/selectUserById').then(res => {
|
||||
|
|
@ -305,11 +407,14 @@
|
|||
uni.hideLoading();
|
||||
},
|
||||
successH5(haibaoImg) {
|
||||
this.haibaoImgH5 = haibaoImg
|
||||
uni.previewImage({
|
||||
urls: [haibaoImg],
|
||||
current: 1,
|
||||
})
|
||||
if ( haibaoImg ) {
|
||||
this.haibaoImgH5 = haibaoImg
|
||||
uni.previewImage({
|
||||
urls: [haibaoImg],
|
||||
current: 1,
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
showModal() {
|
||||
// #ifndef H5
|
||||
|
|
@ -322,6 +427,7 @@
|
|||
this.modalName = 'Image';
|
||||
}
|
||||
// #endif
|
||||
|
||||
// #ifdef H5
|
||||
let ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger') !== -1) {
|
||||
|
|
@ -346,7 +452,6 @@
|
|||
current: 1,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
|
|
@ -357,13 +462,18 @@
|
|||
this.erweimapath = path;
|
||||
},
|
||||
getInviter() {
|
||||
|
||||
let data = {
|
||||
page: this.page,
|
||||
limit: this.limit
|
||||
}
|
||||
this.loading=true;
|
||||
this.$u.api.inviter(data).then(res => {
|
||||
this.loading=false;
|
||||
if (res.code == 0) {
|
||||
this.inviterList = res.data.list
|
||||
this.inviterList =this.inviterList.concat(res.data.list)
|
||||
this.hasAjax = true;
|
||||
this.isEnd=this.page>=res.data.totalPage?true:false;
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
|
|
@ -379,6 +489,8 @@
|
|||
this.cumulativeRevenue = res.data.inviteMoney.moneySum //累计收益
|
||||
this.inviterNumber = res.data.inviteCount //邀请人数
|
||||
this.withdrawn = res.data.inviteMoney.cashOut //已提现
|
||||
this.inviteSignCount = res.data.inviteSignCount
|
||||
Object.assign(this.earning,res.data.earning)
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
|
|
@ -399,6 +511,7 @@
|
|||
//获取背景图
|
||||
getBgImg() {
|
||||
this.$u.get('app/banner/selectBannerList?classify=5').then(res => {
|
||||
console.log(res)
|
||||
if (res.code == 0) {
|
||||
this.bgImg = res.data[0].imageUrl
|
||||
this.tuiguang = res.data[0].describes
|
||||
|
|
@ -543,10 +656,9 @@
|
|||
let textTop = 0;
|
||||
ctx.setFontSize(19);
|
||||
ctx.setFillStyle('#333');
|
||||
ctx.fillText("长按识别图中二维码", 17, textTop + 590);
|
||||
// ctx.fillText("长按识别图中二维码", 17, textTop + 590);
|
||||
// 二维码
|
||||
ctx.drawImage(res2.tempFilePath, 238, textTop +
|
||||
526, 120, 120);
|
||||
// ctx.drawImage(res2.tempFilePath, 238, textTop + 526, 120, 120);
|
||||
ctx.draw(true, () => {
|
||||
// canvas画布转成图片并返回图片地址
|
||||
uni.canvasToTempFilePath({
|
||||
|
|
@ -615,6 +727,7 @@
|
|||
// 保存图片
|
||||
async onSaveImg() {
|
||||
this.showModal();
|
||||
|
||||
return
|
||||
// #ifndef MP-WEIXIN
|
||||
this.showModal();
|
||||
|
|
@ -678,7 +791,112 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
<style lang="scss" scoped>
|
||||
$color1: #5857FF;
|
||||
|
||||
.cu-dialog {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.text-red {
|
||||
color: $color1;
|
||||
}
|
||||
.tag-news{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
color: $color1;
|
||||
background: #DDDCFF;
|
||||
border-radius: 100rpx;
|
||||
font-size: 20rpx;
|
||||
line-height: 1;
|
||||
padding: 4rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.tag-no-real{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
border-radius: 50%;
|
||||
font-size: 20rpx;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
color:#fff;
|
||||
background: rgba(51,51,51,0.44);
|
||||
}
|
||||
.gap {
|
||||
width: 100%;
|
||||
height: 0;
|
||||
position: relative;
|
||||
border-bottom: 1px dashed #eee;
|
||||
|
||||
&:before,
|
||||
&::after {
|
||||
display: block;
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 34rpx;
|
||||
height: 34rpx;
|
||||
background: #F3F4F8;
|
||||
border-radius: 50%;
|
||||
z-index: 2;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background-size: 100% 18px;
|
||||
background-repeat: repeat-x
|
||||
}
|
||||
|
||||
&:before {
|
||||
left: -16rpx;
|
||||
}
|
||||
|
||||
&::after {
|
||||
right: -16rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.radius-16 {
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
|
||||
.min-page {
|
||||
background: #F3F4F8;
|
||||
}
|
||||
|
||||
.inviteBox {
|
||||
position: relative;
|
||||
margin-top: -240rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||||
margin-left: 28rpx;
|
||||
margin-right: 28rpx;
|
||||
|
||||
.top {
|
||||
position: absolute;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
left: 134rpx;
|
||||
right: 134rpx;
|
||||
top: -24rpx;
|
||||
|
||||
.u-absolute {
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 32rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.modal {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
|
|
@ -698,6 +916,10 @@
|
|||
pointer-events: none;
|
||||
}
|
||||
|
||||
.bg-img {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.modal.show {
|
||||
opacity: 1;
|
||||
transition-duration: 0.3s;
|
||||
|
|
@ -709,7 +931,7 @@
|
|||
}
|
||||
|
||||
page {
|
||||
background: #E0EFFF;
|
||||
background: #F3F4F8;
|
||||
}
|
||||
|
||||
img {
|
||||
|
|
@ -737,16 +959,27 @@
|
|||
/* background-size: 100%; */
|
||||
/* background-repeat: no-repeat; */
|
||||
}
|
||||
|
||||
.zhanji {
|
||||
width: 100%;
|
||||
height: 119px;
|
||||
position: absolute;
|
||||
margin: auto;
|
||||
top: 0;
|
||||
.text-shadow{
|
||||
text-shadow: 4px 4px 4px #333;
|
||||
}
|
||||
.top-title {
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 192rpx;
|
||||
|
||||
.rule {
|
||||
line-height: 32rpx;
|
||||
width: 428rpx;
|
||||
padding-right: 150rpx;
|
||||
}
|
||||
|
||||
.top-title-img {
|
||||
width: 550rpx;
|
||||
height: 92rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.zhanji {
|
||||
/* background-image: url('@/me/static/invite/yaoqing.png'); */
|
||||
/* background-size: 100%; */
|
||||
/* background-repeat: no-repeat; */
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<view class="" style="position: relative;overflow: hidden;width: 90px;">
|
||||
<view style="position: absolute;bottom:0;">
|
||||
<!-- <view class="flex"> -->
|
||||
<button @tap="getOut" class="cu-btn round">立即提现</button>
|
||||
<button @tap="getOut" class="cuBtn round">立即提现</button>
|
||||
<!-- </view> -->
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
style="width: 80rpx;height:80rpx;border-radius: 50rpx;"></image>
|
||||
<view class="margin-left-sm">
|
||||
<view class="userName_view">{{item.userName}}</view>
|
||||
<view class="text-cut" style="font-size: 24rpx;" v-if="item.userType && item.userType == 2">二级好友
|
||||
<view class="text-cut" style="font-size: 24rpx;" v-if="item.userType && item.userType === 2">二级好友
|
||||
</view>
|
||||
<view class="text-cut" style="font-size: 24rpx;" v-else>一级好友
|
||||
</view>
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
</view>
|
||||
</view>
|
||||
|
||||
<empty v-if="userList.length == 0" />
|
||||
<empty v-if="userList.length === 0" />
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
limit: this.limit
|
||||
}
|
||||
this.$u.api.queryInviter(data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.inviterRecord = res.data.inviteMoney.money
|
||||
} else {
|
||||
uni.showToast({
|
||||
|
|
@ -98,11 +98,12 @@
|
|||
getInviter() {
|
||||
let data = {
|
||||
page: this.page,
|
||||
limit: this.limit
|
||||
limit: this.limit,
|
||||
userType:1
|
||||
}
|
||||
this.$u.api.inviter(data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (this.page == 1) {
|
||||
if (res.code === 0) {
|
||||
if (this.page === 1) {
|
||||
this.userList = res.data.list
|
||||
} else {
|
||||
this.userList = [...this.userList, ...res.data.list]
|
||||
|
|
@ -127,7 +128,7 @@
|
|||
</script>
|
||||
|
||||
<style>
|
||||
.cu-btn {
|
||||
.cuBtn {
|
||||
background: rgba(255, 117, 129, 0.2);
|
||||
color: #ff7581;
|
||||
font-weight: bold;
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
<view style="margin-bottom: 8upx"> 时间: {{item.createTime}}</view>
|
||||
<view style="margin-bottom: 8upx;text-align: right;">
|
||||
<!-- 提现金额: -->
|
||||
<text v-if="item.type==2" style="color: #FD6416;font-size: 32upx;font-weight: 600"> - ¥{{item.money}}</text>
|
||||
<text v-if="item.type==1" style="color: #FD6416;font-size: 32upx;font-weight: 600">+ ¥{{item.money}}</text>
|
||||
<text v-if="item.type===2" style="color: #666;font-size: 32upx;font-weight: 600"> - ¥{{item.money}}</text>
|
||||
<text v-if="item.type===1" style="color: #FD6416;font-size: 32upx;font-weight: 600">+ ¥{{item.money}}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
|
@ -34,10 +34,22 @@
|
|||
return {
|
||||
list: [],
|
||||
page: 1,
|
||||
limit: 10
|
||||
limit: 10,
|
||||
totalCount: 0,
|
||||
moneyType: null,
|
||||
viewType: null,
|
||||
}
|
||||
},
|
||||
onLoad: function(e) {
|
||||
if (e.moneyType) {
|
||||
this.moneyType = e.moneyType
|
||||
uni.setNavigationBarTitle({
|
||||
title: e.moneyType == 1 ? '红包明细' : '金币明细'
|
||||
});
|
||||
}
|
||||
if (e.viewType) {
|
||||
this.viewType = e.viewType
|
||||
}
|
||||
this.getMoney();
|
||||
},
|
||||
|
||||
|
|
@ -49,15 +61,16 @@
|
|||
if (token) {
|
||||
let data = {
|
||||
page : that.page,
|
||||
limit : that.limit
|
||||
limit : that.limit,
|
||||
moneyType : this.moneyType,
|
||||
viewType: this.viewType,
|
||||
}
|
||||
that.$u.api.moneyDet(data).then(res => {
|
||||
if(that.page == 1) {
|
||||
that.list = res.data.records
|
||||
uni.stopPullDownRefresh();
|
||||
return
|
||||
|
||||
this.$Request.getT('app/moneyDetails/queryUserMoneyDetails', data).then(res => {
|
||||
this.totalCount = res.data.total;
|
||||
if ( res.data.records.length > 0) {
|
||||
this.list = [...this.list,...res.data.records];
|
||||
}
|
||||
that.list = [...that.list, ...res.data.records]
|
||||
})
|
||||
|
||||
}
|
||||
|
|
@ -65,8 +78,10 @@
|
|||
},
|
||||
},
|
||||
onReachBottom: function() {
|
||||
this.page = this.page + 1;
|
||||
this.getMoney();
|
||||
if (this.page*this.limit < this.totalCount) {
|
||||
this.page = this.page + 1;
|
||||
this.getMoney();
|
||||
}
|
||||
},
|
||||
onPullDownRefresh: function() {
|
||||
this.page = 1;
|
||||
|
|
@ -94,8 +109,9 @@
|
|||
|
||||
.centre {
|
||||
text-align: center;
|
||||
margin: 200rpx auto;
|
||||
padding: 200rpx 0;
|
||||
font-size: 32rpx;
|
||||
box-sizing: border-box;
|
||||
image {
|
||||
width: 360rpx;
|
||||
height: 360rpx;
|
||||
|
|
@ -105,7 +121,7 @@
|
|||
}
|
||||
.tips {
|
||||
font-size: 34rpx;
|
||||
color: #5074FF;
|
||||
color: #999999;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.btn {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,177 @@
|
|||
<template>
|
||||
<view class="containerView">
|
||||
<list-cell title="姓名" type="text" placeholder="请输入姓名" v-model="certName"></list-cell>
|
||||
|
||||
|
||||
<list-cell title="身份证号码" type="text" placeholder="请输入身份证号码" v-model="certNum"></list-cell>
|
||||
|
||||
<list-cell title="银行卡号码" type="text" placeholder="请输入银行卡号码" v-model="accountNo"></list-cell>
|
||||
|
||||
<list-cell title="手机号" type="text" placeholder="请输入银行预留号码" v-model="mobile"></list-cell>
|
||||
|
||||
<button v-if="!user.accountNo" class="confirm-btn" @click="toLogin"
|
||||
:disabled="logining">认证</button>
|
||||
<view style="font-size: 24upx;color: #999999;padding: 0 64rpx;margin-top: 32rpx;margin-bottom: 10rpx;">请正确填写收款人的银行卡号和真实的收款人姓名</view>
|
||||
<view style="font-size: 24upx;color: #999999;padding: 0 64rpx;;margin-bottom: 10rpx;">手机号需是银行卡预留手机号</view>
|
||||
<view style="font-size: 24upx;color: #999999;padding: 0 64rpx;;margin-bottom: 10rpx;">银行卡号需与收款人姓名一致</view>
|
||||
<view style="font-size: 24upx;color: #999999;padding: 0 64rpx;;margin-bottom: 10rpx;">身份证信息仅可使用一次</view>
|
||||
<view style="font-size: 24upx;color: #999999;padding: 0 64rpx">否则将无法正常收款,请须知</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import listCell from '@/me/components/com-input';
|
||||
export default {
|
||||
components: {
|
||||
listCell
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
certName: '',
|
||||
mobile: '',
|
||||
certNum: '',
|
||||
accountNo: '',
|
||||
user: {},
|
||||
logining: false
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
let userId = uni.getStorageSync('userId');
|
||||
|
||||
if (userId) {
|
||||
this.$u.api.userinfo().then(res => {
|
||||
if (res.code === 0) {
|
||||
this.user = res.data
|
||||
if (res.data.certName) {
|
||||
this.certName = res.data.certName;
|
||||
}
|
||||
if (res.data.mobile) {
|
||||
this.mobile = res.data.mobile;
|
||||
}
|
||||
if (res.data.accountNo) {
|
||||
this.certNum = res.data.certNo;
|
||||
this.accountNo = res.data.accountNo;
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
inputChange(e) {
|
||||
const key = e.currentTarget.dataset.key;
|
||||
this[key] = e.detail.value;
|
||||
},
|
||||
navBack() {
|
||||
uni.navigateBack();
|
||||
},
|
||||
|
||||
toLogin() {
|
||||
|
||||
if (!this.certName) {
|
||||
uni.showToast({
|
||||
title: '请输入姓名',
|
||||
icon: 'none'
|
||||
})
|
||||
} else if (!this.mobile) {
|
||||
uni.showToast({
|
||||
title: '请输入手机号',
|
||||
icon: 'none'
|
||||
})
|
||||
} else if (!this.certNum) {
|
||||
uni.showToast({
|
||||
title: '请输入身份证账号',
|
||||
icon: 'none'
|
||||
})
|
||||
} else if (!this.accountNo) {
|
||||
uni.showToast({
|
||||
title: '请请输入银行卡号',
|
||||
icon: 'none'
|
||||
})
|
||||
} else {
|
||||
this.logining = true
|
||||
this.$u.post('app/user/realNameAuth?certName=' + this.certName + '&mobile=' + this.mobile + '&certNum=' + this.certNum + '&accountNo=' + this.accountNo.replace(/\s+/g, '')).then(
|
||||
res => {
|
||||
this.logining = false
|
||||
console.log(res);
|
||||
if(res.code===0){
|
||||
uni.setStorageSync('certName', this.certName)
|
||||
uni.setStorageSync('mobile', this.mobile)
|
||||
uni.setStorageSync('certNum', this.certNum)
|
||||
uni.setStorageSync('accountNo', this.accountNo)
|
||||
uni.showToast({
|
||||
title: '修改成功',
|
||||
icon: 'none',
|
||||
complete() {
|
||||
setTimeout(function() {
|
||||
uni.navigateBack();
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}else{
|
||||
uni.showToast({
|
||||
title:res.msg||'修改失败',
|
||||
icon:'none'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang='scss'>
|
||||
page {
|
||||
background: #FFFFFF;
|
||||
}
|
||||
|
||||
.containerView {
|
||||
padding-top: 32upx;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.confirm-btn1 {
|
||||
width: 300px;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
border-radius: 30px;
|
||||
margin-top: 70upx;
|
||||
/* background: whitesmoke; */
|
||||
background: #ff7581;
|
||||
color: #FFFFFF;
|
||||
font-size: 32rpx;
|
||||
|
||||
&:after {
|
||||
border-radius: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.confirm-btn {
|
||||
width: 300px;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
border-radius: 30px;
|
||||
margin-top: 70upx;
|
||||
background: #ff7581;
|
||||
color: #ffffff;
|
||||
font-size: 32rpx;
|
||||
|
||||
&:after {
|
||||
border-radius: 60px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,16 +1,15 @@
|
|||
<template>
|
||||
<view class="container">
|
||||
<view class="containerView">
|
||||
<list-cell title="收款人姓名" type="text" placeholder="请输入支付宝收款人姓名" v-model="zhiFuBaoName"></list-cell>
|
||||
|
||||
<list-cell title="支付宝账号" type="text" placeholder="请输入要绑定的支付宝手机号" v-model="zhiFuBao"></list-cell>
|
||||
|
||||
|
||||
<button :class="zhiFuBao&&zhiFuBaoName?'confirm-btn':'confirm-btn1'" @click="toLogin"
|
||||
|
||||
<button class="confirm-btn" @click="toLogin"
|
||||
:disabled="logining">绑定账户</button>
|
||||
<view style="padding: 32upx 64upx;font-size: 24upx;color: #999999;">提示:请正确填写收款人的支付宝账户和真实的收款人姓名,否则将无法正常收款</view>
|
||||
<view style="font-size: 24upx;color: #999999;padding: 0 64rpx;margin-top: 32rpx;margin-bottom: 10rpx;">请正确填写收款人的支付宝账户和真实的收款人姓名</view>
|
||||
<view style="font-size: 24upx;color: #999999;padding: 0 64rpx">否则将无法正常收款,请须知</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
@ -31,15 +30,14 @@
|
|||
|
||||
if (userId) {
|
||||
this.$u.api.userinfo().then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
if (res.data.zhiFuBao) {
|
||||
this.zhiFuBao = res.data.zhiFuBao;
|
||||
}
|
||||
if (res.data.zhiFuBaoName) {
|
||||
this.zhiFuBaoName = res.data.zhiFuBaoName;
|
||||
}
|
||||
// console.log(this.zhiFuBao )
|
||||
// console.log(this.zhiFuBaoName )
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
@ -55,16 +53,9 @@
|
|||
},
|
||||
|
||||
toLogin() {
|
||||
// console.log(this.zhiFuBao )
|
||||
// console.log(this.zhiFuBaoName )
|
||||
// const {
|
||||
// zhiFuBao,
|
||||
// zhiFuBaoName
|
||||
// } = this;
|
||||
let zhiFuBao = this.zhiFuBao
|
||||
let zhiFuBaoName = this.zhiFuBaoName
|
||||
console.log(zhiFuBao)
|
||||
console.log(zhiFuBaoName)
|
||||
|
||||
if (!zhiFuBao) {
|
||||
uni.showToast({
|
||||
title: '请设置收款人姓名',
|
||||
|
|
@ -76,20 +67,30 @@
|
|||
icon: 'none'
|
||||
})
|
||||
} else {
|
||||
this.$u.post('app/user/updateUser?zhiFuBao=' + zhiFuBao + '&zhiFuBaoName=' + zhiFuBaoName).then(
|
||||
this.logining = true
|
||||
this.$u.post('app/user/bindAlipay?zhiFuBao=' + zhiFuBao + '&certName=' + zhiFuBaoName).then(
|
||||
res => {
|
||||
// console.log(res);
|
||||
uni.setStorageSync('zhiFuBao', zhiFuBao)
|
||||
uni.setStorageSync('zhiFuBaoName', zhiFuBaoName)
|
||||
uni.showToast({
|
||||
title: '修改成功',
|
||||
icon: 'none',
|
||||
complete() {
|
||||
setTimeout(function() {
|
||||
uni.navigateBack();
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
this.logining = false
|
||||
console.log(res);
|
||||
if(res.code===0){
|
||||
uni.setStorageSync('zhiFuBao', zhiFuBao)
|
||||
uni.setStorageSync('zhiFuBaoName', zhiFuBaoName)
|
||||
uni.showToast({
|
||||
title: '修改成功',
|
||||
icon: 'none',
|
||||
complete() {
|
||||
setTimeout(function() {
|
||||
uni.navigateBack();
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}else{
|
||||
uni.showToast({
|
||||
title:res.msg||'修改失败',
|
||||
icon:'none'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
|
@ -127,7 +128,7 @@
|
|||
background: #FFFFFF;
|
||||
}
|
||||
|
||||
.container {
|
||||
.containerView {
|
||||
padding-top: 32upx;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
integral: this.value
|
||||
}
|
||||
this.$Request.postT('/app/integral/creditsExchange', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
uni.showToast({
|
||||
title: '积分兑换成功'
|
||||
})
|
||||
|
|
@ -97,7 +97,7 @@
|
|||
//获取积分兑换比例
|
||||
getBili() {
|
||||
this.$u.get('/app/common/type/104').then(res => { // 积分兑换比例 104
|
||||
if (res.code == 0 && res.data) {
|
||||
if (res.code === 0 && res.data) {
|
||||
this.bili = res.data.value
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -112,14 +112,14 @@
|
|||
setTimeout(() => {
|
||||
this.refresherTriggered = false
|
||||
}, 1500)
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.pages = res.data.pages
|
||||
if (this.page < this.pages) {
|
||||
this.status = 'loadmore'
|
||||
} else {
|
||||
this.status = 'nomore'
|
||||
}
|
||||
if (this.page == 1) {
|
||||
if (this.page === 1) {
|
||||
this.list = res.data.records
|
||||
} else {
|
||||
this.list = [...this.list, ...res.data.records]
|
||||
|
|
@ -131,7 +131,7 @@
|
|||
getNum() {
|
||||
this.$Request.getT('/app/integral/selectByUserId').then(res => {
|
||||
uni.stopPullDownRefresh()
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.num = res.data.integralNum
|
||||
} else {
|
||||
this.num = 0
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
</view>
|
||||
<view class="list-box-r-new flex align-center justify-between">
|
||||
<view class="list-box-r-new-l">
|
||||
{{item.over==1?'完结':'更新'+item.courseDetailsCount+'集'}}
|
||||
{{item.over===1?'完结':'更新'+item.courseDetailsCount+'集'}}
|
||||
</view>
|
||||
<view class="list-box-r-new-r">
|
||||
继续观看
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
<view class="" style="margin: 20rpx;" v-if="list.length > 0">
|
||||
<u-loadmore :status="status" />
|
||||
</view>
|
||||
<empty v-if="list.length == 0" title="暂无记录" />
|
||||
<empty v-if="list.length === 0" title="暂无记录" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
|
@ -47,17 +47,17 @@
|
|||
};
|
||||
},
|
||||
onShow() {
|
||||
this.getList()
|
||||
this.getDataList()
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.page = 1
|
||||
this.getList()
|
||||
this.getDataList()
|
||||
},
|
||||
onReachBottom() {
|
||||
if (this.page < this.pages) {
|
||||
this.page += 1
|
||||
this.status = 'loading'
|
||||
this.getList()
|
||||
this.getDataList()
|
||||
} else {
|
||||
this.status = 'nomore'
|
||||
}
|
||||
|
|
@ -70,7 +70,7 @@
|
|||
})
|
||||
},
|
||||
//获取观看记录
|
||||
getList() {
|
||||
getDataList() {
|
||||
let data = {
|
||||
page: this.page,
|
||||
limit: this.limit,
|
||||
|
|
@ -78,14 +78,14 @@
|
|||
}
|
||||
this.$Request.getT('/app/courseCollect/selectByUserId', data).then(res => {
|
||||
uni.stopPullDownRefresh()
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.pages = res.data.pages
|
||||
if (this.page < this.pages) {
|
||||
this.status = 'loadmore'
|
||||
} else {
|
||||
this.status = 'nomore'
|
||||
}
|
||||
if (this.page == 1) {
|
||||
if (this.page === 1) {
|
||||
this.list = res.data.records
|
||||
} else {
|
||||
this.list = [...this.list, ...res.data.records]
|
||||
|
|
@ -79,14 +79,14 @@
|
|||
}
|
||||
this.$u.api.courseList(data).then(res => {
|
||||
uni.stopPullDownRefresh()
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.pages = res.data.totalPage
|
||||
if (this.page < this.pages) {
|
||||
this.status = 'loadmore'
|
||||
} else {
|
||||
this.status = 'nomore'
|
||||
}
|
||||
if (this.page == 1) {
|
||||
if (this.page === 1) {
|
||||
this.jqList = res.data.list
|
||||
} else {
|
||||
this.jqList = [...this.jqList, ...res.data.list]
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@
|
|||
state: 5
|
||||
}
|
||||
this.$u.api.message(data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (this.page == 1) {
|
||||
if (res.code === 0) {
|
||||
if (this.page === 1) {
|
||||
this.msgList = res.data.list
|
||||
uni.stopPullDownRefresh();
|
||||
return
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@
|
|||
},
|
||||
{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}
|
||||
]
|
||||
|
|
@ -138,7 +138,7 @@
|
|||
if (checkIosPay === '是') {
|
||||
this.payList = [{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}]
|
||||
this.payAway = 3
|
||||
|
|
@ -155,7 +155,7 @@
|
|||
},
|
||||
{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}
|
||||
]
|
||||
|
|
@ -166,7 +166,7 @@
|
|||
// #ifdef MP-WEIXIN
|
||||
this.payList = [{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}]
|
||||
this.payAway = 3
|
||||
|
|
@ -181,7 +181,7 @@
|
|||
},
|
||||
{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}
|
||||
]
|
||||
|
|
@ -194,7 +194,7 @@
|
|||
},
|
||||
{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}
|
||||
]
|
||||
|
|
@ -209,7 +209,7 @@
|
|||
},
|
||||
{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}
|
||||
]
|
||||
|
|
@ -225,7 +225,7 @@
|
|||
},
|
||||
{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}
|
||||
]
|
||||
|
|
@ -233,7 +233,7 @@
|
|||
} else {
|
||||
this.payList = [{
|
||||
imgurl: '/static/images/pay/lingqian.png',
|
||||
name: '金豆支付',
|
||||
name: '金币支付',
|
||||
payAway: 3
|
||||
}]
|
||||
this.payAway = 3
|
||||
|
|
@ -385,7 +385,7 @@
|
|||
}
|
||||
})
|
||||
} else {
|
||||
switch (this.payAway) { //1:微信支付,2:支付宝支付 3:金豆支付
|
||||
switch (this.payAway) { //1:微信支付,2:支付宝支付 3:金币支付
|
||||
case 1: //微信支付
|
||||
// #ifdef MP-WEIXIN
|
||||
that.$Request.postT("/app/wxPay/wxPayJsApiOrder", {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
<button class="confirm-btn" @click="toLogin" :disabled="logining">立即换绑
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -21,28 +21,68 @@
|
|||
<view>隐私协议</view>
|
||||
<view><u-icon name="arrow-right"></u-icon></view>
|
||||
</view>
|
||||
<view class="flex justify-between padding bg-white solid-bottom" @click="goNav('/me/setting/logOff')">
|
||||
<!-- <view class="flex justify-between padding bg-white solid-bottom" @click="goNav('/me/setting/logOff')">
|
||||
<view>注销账号</view>
|
||||
<view><u-icon name="arrow-right"></u-icon></view>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- <view class="flex justify-between padding bg-white solid-bottom" @click="clearCache">
|
||||
<view>清除缓存</view>
|
||||
<view>{{cacheSize}}</view>
|
||||
</view> -->
|
||||
<view class="flex justify-between padding bg-white solid-bottom" @click="loginOut">
|
||||
<view>退出登录</view>
|
||||
<view><u-icon name="arrow-right"></u-icon></view>
|
||||
</view>
|
||||
<view class="version" style="position: absolute;bottom: 50rpx;left: 0;right: 0;margin: auto;text-align: center;color: #666;">{{ version }}版本</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {cacheClearAll} from '@/store/cashe.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
version: null,
|
||||
cacheSize:'0M'
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
const systemInfo = uni.getSystemInfoSync();
|
||||
//#ifdef APP-PLUS
|
||||
this.version = systemInfo.appWgtVersion;
|
||||
//#endif
|
||||
// #ifdef H5
|
||||
this.version = systemInfo.appVersion;
|
||||
// #endif
|
||||
console.log(this.version,'版本号');
|
||||
// plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
|
||||
// console.log(widgetInfo)
|
||||
// this.version = widgetInfo.version
|
||||
// })
|
||||
const info= uni.getStorageInfoSync()
|
||||
console.log(info);
|
||||
const size=(info.currentSize/1024).toFixed(2)
|
||||
this.cacheSize=size<1?(info.currentSize+'kb'):(size) +'M'
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
methods: {
|
||||
clearCache(){
|
||||
uni.showModal({
|
||||
title:'提示',
|
||||
content:`是否清除全部缓存
|
||||
`,
|
||||
success(res) {
|
||||
if(res.confirm){
|
||||
cacheClearAll()
|
||||
const info= uni.getStorageInfoSync()
|
||||
info.keys.map(v=>{
|
||||
console.log(v);
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
goNav(e) {
|
||||
uni.navigateTo({
|
||||
url: e
|
||||
|
|
@ -71,6 +111,7 @@
|
|||
uni.removeStorageSync('zhiFuBao')
|
||||
uni.removeStorageSync('zhiFuBaoName')
|
||||
uni.removeStorageSync('isVIP')
|
||||
cacheClearAll()
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '退出登录成功'
|
||||
|
|
|
|||
|
|
@ -1,21 +1,38 @@
|
|||
<template>
|
||||
<view style="font-size: 14px;line-height: 26px;padding: 32upx;" class="home1">
|
||||
<view style="font-size: 14px;line-height: 26px;padding: 32upx;" class="home1 ">
|
||||
<view style="font-size: 28upx;" v-html="content"></view>
|
||||
<view class="btn-box u-flex u-row-center" v-if="!isLogin">
|
||||
<view class="btn cancel" @click="cancel">拒绝</view>
|
||||
<view class="btn" @click="back">同意</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
content:''
|
||||
data() {
|
||||
return {
|
||||
content: '',
|
||||
isLogin:false
|
||||
}
|
||||
},
|
||||
},
|
||||
onLoad() {
|
||||
this.getGuize();
|
||||
this.isLogin=uni.getStorageSync('token')?true:false
|
||||
},
|
||||
methods: {
|
||||
getGuize(){
|
||||
methods: {
|
||||
cancel(){
|
||||
// #ifdef H5
|
||||
uni.navigateBack()
|
||||
// #endif
|
||||
// #ifdef APP
|
||||
plus.runtime.quit();
|
||||
// #endif
|
||||
},
|
||||
back(){
|
||||
uni.navigateBack()
|
||||
},
|
||||
getGuize() {
|
||||
this.$u.get('app/common/type/155').then(res => {
|
||||
this.content = res.data.value
|
||||
});
|
||||
|
|
@ -24,8 +41,25 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
<style scoped>
|
||||
.btn {
|
||||
width: 100%;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
border-radius: 30px;
|
||||
background: #ff7581;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
}
|
||||
.btn-box{
|
||||
gap: 20px;
|
||||
padding: 30rpx 130rpx;
|
||||
}
|
||||
.cancel{
|
||||
background-color: #eee;
|
||||
color: #999;
|
||||
}
|
||||
page{
|
||||
/* background: #1c1b20; */
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
<template>
|
||||
<view style="line-height: 26px;padding: 32upx;" class="home1">
|
||||
<view style="line-height: 26px;padding: 32upx;" class="home1 ">
|
||||
<view style="font-size: 28upx;" v-html="content"></view>
|
||||
<view class="btn-box u-flex u-row-center" v-if="!isLogin">
|
||||
<view class="btn cancel" @click="cancel">拒绝</view>
|
||||
<view class="btn" @click="back">同意</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
|
@ -8,13 +12,26 @@
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
content:''
|
||||
content:'',
|
||||
isLogin:false
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getGuize();
|
||||
this.isLogin=uni.getStorageSync('token')?true:false
|
||||
},
|
||||
methods: {
|
||||
cancel(){
|
||||
// #ifdef H5
|
||||
uni.navigateBack()
|
||||
// #endif
|
||||
// #ifdef APP
|
||||
plus.runtime.quit();
|
||||
// #endif
|
||||
},
|
||||
back(){
|
||||
uni.navigateBack()
|
||||
},
|
||||
getGuize(){
|
||||
// this.$Request.getT('/agreement/find?id=1').then(res =>{
|
||||
// if(res.status === 0){
|
||||
|
|
@ -30,7 +47,24 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
<style scoped>
|
||||
.btn {
|
||||
width: 100%;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
border-radius: 30px;
|
||||
background: #ff7581;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
}
|
||||
.btn-box{
|
||||
gap: 20px;
|
||||
padding: 30rpx 130rpx;
|
||||
}
|
||||
.cancel{
|
||||
background-color: #eee;
|
||||
color: #999;
|
||||
}
|
||||
page{
|
||||
/* background: #1c1b20; */
|
||||
}
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 385 KiB |
|
|
@ -5,14 +5,14 @@
|
|||
<view class="money-top">
|
||||
<image src="../../static/images/me/moneyBanner.png" mode=""></image>
|
||||
<view class="money-top-title">
|
||||
当前剩余金豆
|
||||
当前剩余金币
|
||||
</view>
|
||||
<view class="money-top-money">
|
||||
{{formatNumber(moneyNum)}}
|
||||
</view>
|
||||
</view>
|
||||
<view @click="goNav('/me/wallet/mingxi')" class="money-bto flex align-center justify-between">
|
||||
金豆明细
|
||||
<view @click="goNav('/me/wallet/wallet_detail')" class="money-bto flex align-center justify-between">
|
||||
金币明细
|
||||
<u-icon name="arrow-right" color="#ff7581" size="40"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -41,7 +41,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="moneycz-bom">
|
||||
{{item.money}}金豆<text v-if="item.giveMoney>0">+{{item.giveMoney}}赠豆</text>
|
||||
{{item.money}}金币<text v-if="item.giveMoney>0">+{{item.giveMoney}}赠豆</text>
|
||||
</view>
|
||||
</view>
|
||||
<u-radio :name="index"></u-radio>
|
||||
|
|
|
|||
|
|
@ -10,15 +10,15 @@
|
|||
</view>
|
||||
<view class="list-box-time flex align-center justify-between">
|
||||
{{item.createTime}}
|
||||
<text>{{item.type==1?'+':'-'}}{{item.money}}</text>
|
||||
<text>{{item.type===1?'+':'-'}}{{item.money}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="list.length > 3" class="loadmore">
|
||||
<view v-if="list.length > 3" class="loadMore">
|
||||
<u-loadmore :status="status" />
|
||||
</view>
|
||||
|
||||
<empty v-if="list.length==0" title="暂无明细" />
|
||||
<empty v-if="list.length===0" title="暂无明细" />
|
||||
<!-- 抖音im客服 -->
|
||||
<ttMsg />
|
||||
</view>
|
||||
|
|
@ -66,14 +66,14 @@
|
|||
}
|
||||
this.$Request.getT('/app/moneyDetails/queryUserMoneyDetails', data).then(res => {
|
||||
uni.stopPullDownRefresh()
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
this.pages = res.data.pages
|
||||
if (this.page < this.pages) {
|
||||
this.status = 'loadmore'
|
||||
} else {
|
||||
this.status = 'nomore'
|
||||
}
|
||||
if (this.page == 1) {
|
||||
if (this.page === 1) {
|
||||
this.list = res.data.records
|
||||
} else {
|
||||
this.list = [...this.list, ...res.data.records]
|
||||
|
|
@ -123,7 +123,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.loadmore {
|
||||
.loadMore {
|
||||
margin: 20rpx 0;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -5,14 +5,14 @@
|
|||
<view class="money-top">
|
||||
<image src="../../static/images/me/moneyBanner.png" mode=""></image>
|
||||
<view class="money-top-title">
|
||||
当前剩余金豆
|
||||
当前剩余金币
|
||||
</view>
|
||||
<view class="money-top-money">
|
||||
{{formatNumber(moneyNum)}}
|
||||
</view>
|
||||
</view>
|
||||
<view @click="goNav('/me/wallet/mingxi')" class="money-bto flex align-center justify-between">
|
||||
金豆明细
|
||||
金币明细
|
||||
<u-icon name="arrow-right" color="#6696ff" size="40"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="moneycz-bom">
|
||||
{{item.money}}金豆<text v-if="item.giveMoney>0">+{{item.giveMoney}}赠豆</text>
|
||||
{{item.money}}金币<text v-if="item.giveMoney>0">+{{item.giveMoney}}赠豆</text>
|
||||
</view>
|
||||
</view>
|
||||
<u-radio :name="index"></u-radio>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
<template>
|
||||
<view>
|
||||
关于我们
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
|
|
@ -0,0 +1,139 @@
|
|||
<template>
|
||||
<view>
|
||||
<view class="item" v-for="(res, index) in siteList" :key="res.id">
|
||||
<view class="top">
|
||||
<view class="name">{{ res.name }}</view>
|
||||
<view class="phone">{{ res.phone }}</view>
|
||||
<view class="tag">
|
||||
<text v-for="(item, index) in res.tag" :key="index" :class="{red:item.tagText=='默认'}">{{ item.tagText }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom">
|
||||
广东省深圳市宝安区 自由路66号
|
||||
<u-icon name="edit-pen" :size="40" color="#999999"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="addSite" @tap="toAddSite">
|
||||
<view class="add">
|
||||
<u-icon name="plus" color="#ffffff" class="icon" :size="30"></u-icon>新建收货地址
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
siteList: []
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
this.siteList = [
|
||||
{
|
||||
id: 1,
|
||||
name: '游X',
|
||||
phone: '183****5523',
|
||||
tag: [
|
||||
{
|
||||
tagText: '默认'
|
||||
},
|
||||
{
|
||||
tagText: '家'
|
||||
}
|
||||
],
|
||||
site: '广东省深圳市宝安区 自由路66号'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '李XX',
|
||||
phone: '183****5555',
|
||||
tag: [
|
||||
{
|
||||
tagText: '公司'
|
||||
}
|
||||
],
|
||||
site: '广东省深圳市宝安区 翻身路xx号'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: '王YY',
|
||||
phone: '153****5555',
|
||||
tag: [],
|
||||
site: '广东省深圳市宝安区 平安路13号'
|
||||
}
|
||||
];
|
||||
},
|
||||
toAddSite(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/template/address/addSite'
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.item {
|
||||
padding: 40rpx 20rpx;
|
||||
.top {
|
||||
display: flex;
|
||||
font-weight: bold;
|
||||
font-size: 34rpx;
|
||||
.phone {
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
.tag {
|
||||
display: flex;
|
||||
font-weight: normal;
|
||||
align-items: center;
|
||||
text {
|
||||
display: block;
|
||||
width: 60rpx;
|
||||
height: 34rpx;
|
||||
line-height: 34rpx;
|
||||
color: #ffffff;
|
||||
font-size: 20rpx;
|
||||
border-radius: 6rpx;
|
||||
text-align: center;
|
||||
margin-left: 30rpx;
|
||||
background-color:rgb(49, 145, 253);
|
||||
}
|
||||
.red{
|
||||
background-color:red
|
||||
}
|
||||
}
|
||||
}
|
||||
.bottom {
|
||||
display: flex;
|
||||
margin-top: 20rpx;
|
||||
font-size: 28rpx;
|
||||
justify-content: space-between;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
.addSite {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
width: 600rpx;
|
||||
line-height: 100rpx;
|
||||
position: absolute;
|
||||
bottom: 30rpx;
|
||||
left: 80rpx;
|
||||
background-color: red;
|
||||
border-radius: 60rpx;
|
||||
font-size: 30rpx;
|
||||
.add{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #ffffff;
|
||||
.icon{
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,800 @@
|
|||
<template>
|
||||
<view class="template-details tn-safe-area-inset-bottom">
|
||||
<!-- 顶部自定义导航 -->
|
||||
<tn-nav-bar fixed alpha customBack>
|
||||
<view slot="back" class='tn-custom-nav-bar__back'
|
||||
@click="goBack">
|
||||
<text class='icon tn-icon-left'></text>
|
||||
<text class='icon tn-icon-home-capsule-fill'></text>
|
||||
</view>
|
||||
</tn-nav-bar>
|
||||
|
||||
<view class="" :style="{paddingTop: vuex_custom_bar_height + 'px'}">
|
||||
<!-- 图文信息 -->
|
||||
<block v-for="(item,index) in content" :key="index">
|
||||
<view class="blogger__item">
|
||||
<view class="blogger__author tn-flex tn-flex-row-between tn-flex-col-center">
|
||||
<view class="justify__author__info" @click="tn('/circlePages/blogger_other')">
|
||||
<view class="tn-flex tn-flex-row-center">
|
||||
<view class="tn-flex tn-flex-row-center tn-flex-col-center">
|
||||
<view class="">
|
||||
<tn-avatar
|
||||
class=""
|
||||
shape="circle"
|
||||
:src="item.userAvatar"
|
||||
size="lg">
|
||||
</tn-avatar>
|
||||
</view>
|
||||
<view class="tn-padding-right tn-text-ellipsis">
|
||||
<view class="tn-padding-right tn-padding-left-sm tn-text-bold tn-text-lg">{{ item.userName }}</view>
|
||||
<view class="tn-padding-right tn-padding-left-sm tn-padding-top-xs tn-color-gray">{{ item.date }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="blogger__author__btn justify-content-item tn-flex-col-center tn-flex-row-center">
|
||||
<!-- 既然都点到详情里面了,加个关注按钮呗 -->
|
||||
<text class="tn-bg-brown--light tn-round tn-text-df tn-text-bold tn-color-brown" style="padding: 10rpx 24rpx;">+ 关注</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="blogger__desc tn-margin-top-sm tn-margin-bottom-sm tn-text-justify tn-flex-col-center tn-flex-row-left">
|
||||
<view v-for="(label_item,label_index) in item.label" :key="label_index" class="blogger__desc__label tn-float-left tn-margin-right tn-bg-gray--light tn-round tn-text-sm tn-text-bold">
|
||||
<text class="blogger__desc__label--prefix">#</text>
|
||||
<text class="tn-text-df">{{ label_item }}</text>
|
||||
</view>
|
||||
<!-- 不用限制长度了,因为发布的时候限制长度了-->
|
||||
<text v-if="!item.label || item.label.length < 4" class="blogger__desc__content tn-flex-1 tn-text-justify tn-text-df">{{ item.desc }}</text>
|
||||
</view>
|
||||
|
||||
<!-- 内容太多疲劳了-->
|
||||
<!-- <view
|
||||
v-if="item.content"
|
||||
class="blogger__content"
|
||||
:id="`blogger__content--${index}`"
|
||||
>
|
||||
<view
|
||||
class="blogger__content__data clamp-text-2">
|
||||
{{ item.content }}
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<block v-if="item.mainImage">
|
||||
<view v-if="[1,2,4].indexOf(item.mainImage.length) != -1" class="tn-padding-top-xs">
|
||||
<image v-for="(image_item,image_index) in item.mainImage" :key="image_index"
|
||||
class="blogger__main-image"
|
||||
:class="{
|
||||
'blogger__main-image--1 tn-margin-bottom-sm': item.mainImage.length === 1,
|
||||
'blogger__main-image--2 tn-margin-right-sm tn-margin-bottom-sm': item.mainImage.length === 2 || item.mainImage.length === 4
|
||||
}"
|
||||
:src="image_item"
|
||||
mode="aspectFill"
|
||||
></image>
|
||||
</view>
|
||||
<view v-else class="tn-padding-top-xs">
|
||||
<tn-grid hoverClass="none" :col="3">
|
||||
<block v-for="(image_item,image_index) in item.mainImage" :key="image_index">
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<tn-grid-item style="width: 30%;margin: 10rpx;">
|
||||
<image
|
||||
class="blogger__main-image blogger__main-image--3"
|
||||
:src="image_item"
|
||||
mode="aspectFill"
|
||||
></image>
|
||||
</tn-grid-item>
|
||||
<!-- #endif-->
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<tn-grid-item style="width: 30%;margin: 10rpx;">
|
||||
<image
|
||||
class="blogger__main-image blogger__main-image--3"
|
||||
:src="image_item"
|
||||
mode="aspectFill"
|
||||
></image>
|
||||
</tn-grid-item>
|
||||
<!-- #endif-->
|
||||
</block>
|
||||
</tn-grid>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-margin-top-xs">
|
||||
<view class="justify-content-item tn-flex tn-flex-col-center">
|
||||
<view style="margin-right: 10rpx;">
|
||||
<tn-avatar-group :lists="item.viewUser.latestUserAvatar" size="sm"></tn-avatar-group>
|
||||
</view>
|
||||
<text class="tn-color-gray">{{ item.viewUser.viewUserCount }}人</text>
|
||||
</view>
|
||||
<view class="justify-content-item tn-color-gray tn-text-center">
|
||||
<view class="">
|
||||
<text class="blogger__count-icon tn-icon-footprint"></text>
|
||||
<text class="tn-padding-right">{{ item.collectionCount }}</text>
|
||||
<text class="blogger__count-icon tn-icon-message"></text>
|
||||
<text class="tn-padding-right">{{ item.commentCount }}</text>
|
||||
<text class="blogger__count-icon tn-icon-like"></text>
|
||||
<text class="">{{ item.likeCount }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 边距间隔 -->
|
||||
<!-- <view class="tn-strip-bottom" v-if="index != content.length - 1"></view> -->
|
||||
</block>
|
||||
|
||||
<!-- 按钮-->
|
||||
<view class="tn-flex tn-flex-row-between" style="margin: 40rpx 0 60rpx 0;">
|
||||
<view class="tn-flex-1 justify-content-item tn-margin-xs tn-text-center">
|
||||
<tn-button backgroundColor="#00FFC6" padding="40rpx 0" width="90%" shadow fontBold>
|
||||
<text class="tn-icon-like-lack tn-padding-right-xs tn-color-black"></text>
|
||||
<text class="tn-color-black">点 赞</text>
|
||||
</tn-button>
|
||||
</view>
|
||||
<view class="tn-flex-1 justify-content-item tn-margin-xs tn-text-center">
|
||||
<tn-button backgroundColor="#FFF00D" padding="40rpx 0" width="90%" shadow fontBold open-type="share">
|
||||
<text class="tn-icon-share-triangle tn-padding-right-xs tn-color-black"></text>
|
||||
<text class="tn-color-black">分 享</text>
|
||||
</tn-button>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
<!-- 评论 -->
|
||||
<view class="tn-margin" style="padding-bottom: 120rpx;">
|
||||
<!-- 图标logo/头像 -->
|
||||
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-margin-top-xl" @click="tn('/circlePages/blogger_other')">
|
||||
<view class="justify-content-item">
|
||||
<view class="tn-flex tn-flex-col-center tn-flex-row-left">
|
||||
<view class="logo-pic tn-shadow">
|
||||
<view class="logo-image">
|
||||
<view class="tn-shadow-blur" style="background-image:url('https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg');width: 60rpx;height: 60rpx;background-size: cover;">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tn-padding-right tn-padding-left-sm">
|
||||
<view class="tn-padding-right tn-text-df tn-text-bold tn-color-black">
|
||||
抓住那只高产母猪
|
||||
</view>
|
||||
<view class="tn-padding-right tn-text-ellipsis tn-text-xs tn-color-gray" style="padding-top: 5rpx;">
|
||||
2024年5月26日
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="justify-content-item tn-flex-row-center tn-flex-col-center tn-color-gray">
|
||||
<view class="tn-text-center">
|
||||
<text class="tn-icon-like-lack tn-padding-xs"></text>
|
||||
</view>
|
||||
<view class="tn-text-center">
|
||||
<text class="tn-text-xs">26</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="" style="margin: 20rpx 30rpx 30rpx 80rpx;">
|
||||
求打卡地点
|
||||
</view>
|
||||
<view class="tn-bg-gray--light tn-padding-sm" style="margin: 20rpx 30rpx 30rpx 80rpx;border-radius: 10rpx;">
|
||||
<text class="tn-text-bold tn-padding-right-xs">博主回复: </text>
|
||||
<text style="line-height: 40rpx;">保密</text>
|
||||
<view class="tn-flex tn-flex-row-between tn-margin-top-xs">
|
||||
<view class="justify-content-item tn-text-xs tn-color-gray" style="padding-top: 5rpx;">
|
||||
2024年5月26日
|
||||
</view>
|
||||
<view class="justify-content-item tn-text-xs tn-color-gray">
|
||||
<text class="tn-padding-xs">16</text>
|
||||
<text class="tn-icon-like-lack"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 评论2-->
|
||||
<!-- 图标logo/头像 -->
|
||||
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-margin-top-xl" @click="tn('/circlePages/blogger_other')">
|
||||
<view class="justify-content-item">
|
||||
<view class="tn-flex tn-flex-col-center tn-flex-row-left">
|
||||
<view class="logo-pic tn-shadow">
|
||||
<view class="logo-image">
|
||||
<view class="tn-shadow-blur" style="background-image:url('https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg');width: 60rpx;height: 60rpx;background-size: cover;">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tn-padding-right tn-padding-left-sm">
|
||||
<view class="tn-padding-right tn-text-df tn-text-bold tn-color-black">
|
||||
北染陌人
|
||||
</view>
|
||||
<view class="tn-padding-right tn-text-ellipsis tn-text-xs tn-color-gray" style="padding-top: 5rpx;">
|
||||
2024年5月25日
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="justify-content-item tn-flex-row-center tn-flex-col-center tn-color-gray">
|
||||
<view class="tn-text-center">
|
||||
<text class="tn-icon-like-lack tn-padding-xs"></text>
|
||||
</view>
|
||||
<view class="tn-text-center">
|
||||
<text class="tn-text-xs">68</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="" style="margin: 20rpx 30rpx 30rpx 80rpx;">
|
||||
求摄影师微信,谢谢
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 评论3-->
|
||||
<!-- 图标logo/头像 -->
|
||||
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-margin-top-xl" @click="tn('/circlePages/blogger_other')">
|
||||
<view class="justify-content-item">
|
||||
<view class="tn-flex tn-flex-col-center tn-flex-row-left">
|
||||
<view class="logo-pic tn-shadow">
|
||||
<view class="logo-image">
|
||||
<view class="tn-shadow-blur" style="background-image:url('https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg');width: 60rpx;height: 60rpx;background-size: cover;">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tn-padding-right tn-padding-left-sm">
|
||||
<view class="tn-padding-right tn-text-df tn-text-bold tn-color-black">
|
||||
原来是吖释鸭
|
||||
</view>
|
||||
<view class="tn-padding-right tn-text-ellipsis tn-text-xs tn-color-gray">
|
||||
2024年5月25日
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="justify-content-item tn-flex-row-center tn-flex-col-center tn-color-gray">
|
||||
<view class="tn-text-center">
|
||||
<text class="tn-icon-like-lack tn-padding-xs"></text>
|
||||
</view>
|
||||
<view class="tn-text-center">
|
||||
<text class="tn-text-xs">43</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="" style="margin: 20rpx 30rpx 30rpx 80rpx;">
|
||||
吃瓜群众到此一游,阿巴阿巴
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
<view class="tabbar footerfixed dd-glass">
|
||||
<view class="tn-flex tn-flex-row-between tn-flex-col-center">
|
||||
<view class="justify-content-item tn-margin-top">
|
||||
<view class="tn-flex tn-flex-row-center tn-flex-col-center">
|
||||
|
||||
|
||||
<!-- <view class="tn-flex tn-flex-row-center tn-padding-right tn-padding-left">
|
||||
<text class="tn-icon-emoji-good tn-text-xxl"></text>
|
||||
</view> -->
|
||||
|
||||
<view class="tn-flex tn-flex-row-center tn-flex-col-center tn-padding-right tn-padding-left-sm">
|
||||
<view class="avatar-all">
|
||||
<view class="tn-shadow-blur" style="background-image:url('https://resource.tuniaokj.com/images/blogger/onepiece-1.jpg');width: 60rpx;height: 60rpx;background-size: cover;">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="topic__info__item__input tn-flex tn-flex-direction-row tn-flex-nowrap tn-flex-col-center tn-flex-row-left">
|
||||
<view class="topic__info__item__input__left-icon">
|
||||
<view class="tn-icon-emoji-good"></view>
|
||||
</view>
|
||||
<view class="topic__info__item__input__content">
|
||||
<input maxlength="20" placeholder-class="input-placeholder" :cursor-spacing="18" placeholder="不说点啥子吗?" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="justify-content-item tn-flex-row-center tn-flex-col-center tn-margin-top tn-margin-right">
|
||||
<view class="topic__info__item__sure">
|
||||
<view class="tn-flex-1 justify-content-item tn-text-center">
|
||||
<tn-button shape="round" backgroundColor="tn-cool-bg-color-15--reverse" width="100%" shadow>
|
||||
<text class="tn-color-white" hover-class="tn-hover" :hover-stay-time="150">
|
||||
发 送
|
||||
</text>
|
||||
</tn-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import template_page_mixin from '@/libs/mixin/template_page_mixin.js'
|
||||
export default {
|
||||
name: 'TemplateDetails',
|
||||
mixins: [template_page_mixin],
|
||||
data(){
|
||||
return {
|
||||
content: [
|
||||
/* {
|
||||
userAvatar: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg',
|
||||
userName: '可我会像',
|
||||
date: '2024年5月20日',
|
||||
label: ['追剧达人','重生粉','UI框架'],
|
||||
desc: '追剧比追人要轻松多了,助你开发酷炫UI一臂之力',
|
||||
content: '基础常用的布局元素,酷炫完善的配色体系,统一可增的图标 icon ,简便调用的功能组件,酷炫的前端页面,吖,编不下去了',
|
||||
viewUser: {
|
||||
latestUserAvatar: [
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
],
|
||||
viewUserCount: 62
|
||||
},
|
||||
collectionCount: 439,
|
||||
commentCount: 46,
|
||||
likeCount: 83
|
||||
},
|
||||
{
|
||||
userAvatar: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg',
|
||||
userName: '可我会像',
|
||||
date: '2024年5月20日',
|
||||
label: ['追剧达人','重生粉','UI框架'],
|
||||
desc: '追剧比追人要轻松多了,助你开发酷炫UI一臂之力',
|
||||
content: '基础常用的布局元素,酷炫完善的配色体系,统一可增的图标 icon ,简便调用的功能组件,酷炫的前端页面,吖,编不下去了',
|
||||
mainImage:[
|
||||
'https://resource.tuniaokj.com/images/blogger/content_1.jpeg'
|
||||
],
|
||||
viewUser: {
|
||||
latestUserAvatar: [
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
],
|
||||
viewUserCount: 12
|
||||
},
|
||||
collectionCount: 902,
|
||||
commentCount: 64,
|
||||
likeCount: 83
|
||||
},
|
||||
{
|
||||
userAvatar: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg',
|
||||
userName: '可我会像',
|
||||
date: '2024年5月20日',
|
||||
label: [],
|
||||
desc: '',
|
||||
content: '',
|
||||
mainImage:[
|
||||
'https://resource.tuniaokj.com/images/shop/computer2.jpg',
|
||||
'https://resource.tuniaokj.com/images/shop/prototype2.jpg',
|
||||
],
|
||||
viewUser: {
|
||||
latestUserAvatar: [
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
],
|
||||
viewUserCount: 56
|
||||
},
|
||||
collectionCount: 431,
|
||||
commentCount: 26,
|
||||
likeCount: 84
|
||||
},
|
||||
{
|
||||
userAvatar: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg',
|
||||
userName: '可我会像',
|
||||
date: '2024年5月20日',
|
||||
label: ['追剧达人','重生粉'],
|
||||
desc: '追剧比追人要轻松多了',
|
||||
content: '基础常用的布局元素,酷炫完善的配色体系,统一可增的图标 icon ,简便调用的功能组件,酷炫的前端页面,吖,编不下去了 基础常用的布局元素,酷炫完善的配色体系,统一可增的图标 icon ,简便调用的功能组件,酷炫的前端页面,吖,编不下去了',
|
||||
mainImage:[
|
||||
'https://resource.tuniaokj.com/images/swiper/swiper2.jpg',
|
||||
'https://resource.tuniaokj.com/images/swiper/swiper3.jpg',
|
||||
'https://resource.tuniaokj.com/images/swiper/swiper4.jpg',
|
||||
],
|
||||
viewUser: {
|
||||
latestUserAvatar: [
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
],
|
||||
viewUserCount: 231
|
||||
},
|
||||
collectionCount: 780,
|
||||
commentCount: 89,
|
||||
likeCount: 82
|
||||
},
|
||||
{
|
||||
userAvatar: 'https://resource.tuniaokj.com/images/blogger/content_1.jpeg',
|
||||
userName: '可我会像',
|
||||
date: '2024年5月20日',
|
||||
label: ['追剧达人','链接'],
|
||||
desc: 'https://www.yuque.com/tuniao',
|
||||
mainImage:[
|
||||
'https://resource.tuniaokj.com/images/shop/watch1.jpg',
|
||||
'https://resource.tuniaokj.com/images/shop/watch2.jpg',
|
||||
'https://resource.tuniaokj.com/images/shop/pillow2.jpg',
|
||||
'https://resource.tuniaokj.com/images/shop/pillow.jpg',
|
||||
],
|
||||
viewUser: {
|
||||
latestUserAvatar: [
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
],
|
||||
viewUserCount: 28
|
||||
},
|
||||
collectionCount: 432,
|
||||
commentCount: 33,
|
||||
likeCount: 12
|
||||
}, */
|
||||
{
|
||||
userAvatar: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg',
|
||||
userName: '可我会像',
|
||||
date: '2024年5月20日',
|
||||
label: ['追剧达人','重生粉'],
|
||||
desc: '追剧比追人要轻松多了',
|
||||
mainImage:[
|
||||
'https://resource.tuniaokj.com/images/blogger/y11.jpg',
|
||||
'https://resource.tuniaokj.com/images/blogger/y33.jpg',
|
||||
'https://resource.tuniaokj.com/images/blogger/y22.jpg',
|
||||
'https://resource.tuniaokj.com/images/blogger/y44.jpg',
|
||||
'https://resource.tuniaokj.com/images/blogger/y55.jpg',
|
||||
],
|
||||
viewUser: {
|
||||
latestUserAvatar: [
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
],
|
||||
viewUserCount: 65
|
||||
},
|
||||
collectionCount: 265,
|
||||
commentCount: 22,
|
||||
likeCount: 102
|
||||
}
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 跳转
|
||||
tn(e) {
|
||||
uni.navigateTo({
|
||||
url: e,
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
/* 胶囊*/
|
||||
.tn-custom-nav-bar__back {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
background-color: rgba(0, 0, 0, 0.15);
|
||||
border-radius: 1000rpx;
|
||||
border: 1rpx solid rgba(255, 255, 255, 0.5);
|
||||
color: #FFFFFF;
|
||||
font-size: 18px;
|
||||
|
||||
.icon {
|
||||
display: block;
|
||||
flex: 1;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: " ";
|
||||
width: 1rpx;
|
||||
height: 110%;
|
||||
position: absolute;
|
||||
top: 22.5%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
transform: scale(0.5);
|
||||
transform-origin: 0 0;
|
||||
pointer-events: none;
|
||||
box-sizing: border-box;
|
||||
opacity: 0.7;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
/* 文章内容 start*/
|
||||
.blogger {
|
||||
&__item {
|
||||
padding: 30rpx;
|
||||
}
|
||||
|
||||
&__author {
|
||||
&__btn {
|
||||
margin-right: -12rpx;
|
||||
padding: 0 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
&__desc {
|
||||
line-height: 55rpx;
|
||||
|
||||
&__label {
|
||||
padding: 0 20rpx;
|
||||
margin: 0rpx 18rpx 0 0;
|
||||
|
||||
&--prefix {
|
||||
color: #00FFC8;
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
}
|
||||
&__content {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
margin-top: 18rpx;
|
||||
padding-right: 18rpx;
|
||||
|
||||
&__data {
|
||||
line-height: 46rpx;
|
||||
text-align: justify;
|
||||
overflow: hidden;
|
||||
transition: all 0.25s ease-in-out;
|
||||
|
||||
}
|
||||
|
||||
&__status {
|
||||
margin-top: 10rpx;
|
||||
font-size: 26rpx;
|
||||
color: #82B2FF;
|
||||
}
|
||||
}
|
||||
|
||||
&__main-image {
|
||||
border-radius: 16rpx;
|
||||
|
||||
&--1 {
|
||||
max-width: 80%;
|
||||
max-height: 300rpx;
|
||||
}
|
||||
|
||||
&--2 {
|
||||
max-width: 260rpx;
|
||||
max-height: 260rpx;
|
||||
}
|
||||
|
||||
&--3 {
|
||||
height: 212rpx;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&__count-icon {
|
||||
font-size: 40rpx;
|
||||
padding-right: 5rpx;
|
||||
}
|
||||
|
||||
&__ad {
|
||||
width: 100%;
|
||||
height: 500rpx;
|
||||
transform: translate3d(0px, 0px, 0px) !important;
|
||||
|
||||
::v-deep .uni-swiper-slide-frame {
|
||||
transform: translate3d(0px, 0px, 0px) !important;
|
||||
}
|
||||
.uni-swiper-slide-frame {
|
||||
transform: translate3d(0px, 0px, 0px) !important;
|
||||
}
|
||||
|
||||
&__item {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
transform-origin: left center;
|
||||
transform: translate3d(100%, 0px, 0px) scale(1) !important;
|
||||
transition: transform 0.25s ease-in-out;
|
||||
z-index: 1;
|
||||
|
||||
&--0 {
|
||||
transform: translate3d(0%, 0px, 0px) scale(1) !important;
|
||||
z-index: 4;
|
||||
}
|
||||
&--1 {
|
||||
transform: translate3d(13%, 0px, 0px) scale(0.9) !important;
|
||||
z-index: 3;
|
||||
}
|
||||
&--2 {
|
||||
transform: translate3d(26%, 0px, 0px) scale(0.8) !important;
|
||||
z-index: 2;
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
border-radius: 40rpx;
|
||||
width: 640rpx;
|
||||
height: 500rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&__image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* 文章内容 end*/
|
||||
|
||||
/* 间隔线 start*/
|
||||
.tn-strip-bottom {
|
||||
width: 100%;
|
||||
border-bottom: 20rpx solid rgba(241, 241, 241, 0.8);
|
||||
}
|
||||
/* 间隔线 end*/
|
||||
|
||||
/* 头像 start */
|
||||
.logo-image {
|
||||
width: 60rpx;
|
||||
height: 60rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.logo-pic {
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
// background-attachment:fixed;
|
||||
background-position: top;
|
||||
box-shadow: 0rpx 0rpx 80rpx 0rpx rgba(0, 0, 0, 0.15);
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
// background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
|
||||
/* 底部 start*/
|
||||
.footerfixed{
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
z-index: 999;
|
||||
background-color: rgba(255,255,255,0.5);
|
||||
box-shadow: 0rpx 0rpx 30rpx 0rpx rgba(0, 0, 0, 0.07);
|
||||
}
|
||||
|
||||
.tabbar {
|
||||
align-items: center;
|
||||
min-height: 130rpx;
|
||||
padding: 0;
|
||||
height: calc(130rpx + env(safe-area-inset-bottom) / 2);
|
||||
padding-bottom: calc(30rpx + env(safe-area-inset-bottom) / 2);
|
||||
padding-left: 10rpx;
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
|
||||
/* 毛玻璃*/
|
||||
.dd-glass {
|
||||
width: 100%;
|
||||
backdrop-filter: blur(20rpx);
|
||||
-webkit-backdrop-filter: blur(20rpx);
|
||||
}
|
||||
|
||||
/* 头像*/
|
||||
.avatar-all {
|
||||
width: 60rpx;
|
||||
height: 60rpx;
|
||||
border: 4rpx solid rgba(255,255,255,0.05);
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
box-shadow: 0rpx 0rpx 80rpx 0rpx rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
/* 内容*/
|
||||
.topic {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
margin-bottom: 120rpx;
|
||||
|
||||
|
||||
/* 表单信息 start */
|
||||
&__info {
|
||||
margin: 0 50rpx;
|
||||
margin-top: 105rpx;
|
||||
padding: 30rpx 51rpx;
|
||||
border-radius: 20rpx;
|
||||
background-color: rgba(255,255,255,1);
|
||||
border: 2rpx solid rgba(255, 255, 255, 0.1);
|
||||
box-shadow: 0rpx 10rpx 50rpx 0rpx rgba(0, 3, 72, 0.1);
|
||||
|
||||
&__item {
|
||||
|
||||
&__input {
|
||||
width: 400rpx;
|
||||
height: 60rpx;
|
||||
border: 1rpx solid #C6D1D8;
|
||||
border-radius: 39rpx;
|
||||
|
||||
&__left-icon {
|
||||
width: 10%;
|
||||
font-size: 44rpx;
|
||||
margin-left: 20rpx;
|
||||
margin-right: 5rpx;
|
||||
color: #C6D1D8;
|
||||
}
|
||||
|
||||
&__content {
|
||||
width: 80%;
|
||||
padding-left: 10rpx;
|
||||
|
||||
&--verify-code {
|
||||
width: 56%;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 30rpx;
|
||||
color: #78909C;
|
||||
// letter-spacing: 0.1em;
|
||||
}
|
||||
}
|
||||
|
||||
&__right-icon {
|
||||
width: 10%;
|
||||
font-size: 34rpx;
|
||||
margin-right: 20rpx;
|
||||
color: #78909C;
|
||||
}
|
||||
|
||||
&__right-verify-code {
|
||||
width: 34%;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
&__button {
|
||||
width: 100%;
|
||||
height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 31rpx;
|
||||
font-weight: bold;
|
||||
line-height: 77rpx;
|
||||
// text-indent: 1em;
|
||||
border-radius: 100rpx;
|
||||
color: #FFFFFF;
|
||||
background-color: rgba(255,255,255,0.2);
|
||||
// border: 2rpx solid #FFFFFF;
|
||||
}
|
||||
|
||||
&__sure {
|
||||
height: 60rpx;
|
||||
width: 140rpx;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/* 表单信息 end */
|
||||
|
||||
/* 内容 end */
|
||||
|
||||
}
|
||||
|
||||
/deep/.input-placeholder {
|
||||
font-size: 30rpx;
|
||||
color: #C6D1D8;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -0,0 +1,374 @@
|
|||
<template>
|
||||
<view class="u-wrap">
|
||||
<view class="meituan">
|
||||
<view class="content">
|
||||
<view class="left">
|
||||
<view class="sum">
|
||||
¥
|
||||
<text class="num">8</text>
|
||||
</view>
|
||||
<view class="type">抵用券</view>
|
||||
</view>
|
||||
<view class="centre">
|
||||
<view class="title">【洗牙】8元无门槛红包</view>
|
||||
<view class="valid-date">今日到期</view>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view size="mini" class="immediate-use" :round="true">立即使用</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tips">
|
||||
<view class="circle-left"></view>
|
||||
<view class="circle-right"></view>
|
||||
<view class="explain u-line-1">满8.1元可用、限最新版本客户端使用</view>
|
||||
<view class="rule u-line-1" @tap="xxx122">
|
||||
<text>使用规则</text>
|
||||
<u-icon name="arrow-right" color="" :size="20" @click=""></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="jingdong">
|
||||
<view class="left">
|
||||
<view class="sum">
|
||||
¥
|
||||
<text class="num">100</text>
|
||||
</view>
|
||||
<view class="type">满149元可用</view>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="top">
|
||||
<view class="title">
|
||||
<text class="tag">限品类东券</text>
|
||||
<text>仅可购买个人护理部分商品</text>
|
||||
</view>
|
||||
<view class="bottom">
|
||||
<view class="date u-line-1">2020.01.01-2020.01.31</view>
|
||||
<view class="immediate-use">立即使用</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tips">
|
||||
<view class="explain">
|
||||
<u-icon name="zhuanfa" class="transpond" :size="24"></u-icon>
|
||||
<text>可赠送</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="taobao">
|
||||
<view class="title">
|
||||
<view class="left">
|
||||
<image class="buddha" src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1975388697,1068670603&fm=26&gp=0.jpg" mode="aspectFill"></image>
|
||||
<view class="store">袜子精保护协会</view>
|
||||
</view>
|
||||
<view class="entrance">进店</view>
|
||||
</view>
|
||||
<view class="ticket">
|
||||
<view class="left">
|
||||
<image
|
||||
class="picture"
|
||||
src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1578059523488&di=5f592ac19c1b983005d3e85add469756&imgtype=0&src=http%3A%2F%2Fimg010.hc360.cn%2Fg7%2FM00%2F2D%2FB9%2FwKhQs1QfUo6EdeM-AAAAALwk1hM072.jpg"
|
||||
mode="widthFix"
|
||||
></image>
|
||||
<view class="introduce">
|
||||
<view class="top">
|
||||
¥
|
||||
<text class="big">3</text>
|
||||
满88减3
|
||||
</view>
|
||||
<view class="type">店铺优惠券</view>
|
||||
<view class="date u-line-1">2019.11.28-2020.1.24</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="use immediate-use" :round="true">去使用</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
page {
|
||||
height: 100%;
|
||||
background-color: rgb(244, 244, 244);
|
||||
}
|
||||
.u-wrap {
|
||||
padding: 24rpx;
|
||||
}
|
||||
|
||||
.meituan {
|
||||
margin: 30rpx auto;
|
||||
background-color: #ffffff;
|
||||
width: 700rpx;
|
||||
// border: 10rpx;
|
||||
color: $u-type-warning;
|
||||
font-size: 28rpx;
|
||||
.content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 80rpx 20rpx;
|
||||
border: 10rpx;
|
||||
background-color: #fff5f4;
|
||||
.left {
|
||||
.sum {
|
||||
font-size: 32rpx;
|
||||
.num {
|
||||
font-size: 60rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
.centre {
|
||||
margin-left: 40rpx;
|
||||
.title {
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: $u-main-color;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
}
|
||||
.right {
|
||||
margin-left: 30rpx;
|
||||
.immediate-use {
|
||||
padding: 0 20rpx;
|
||||
height: 50rpx;
|
||||
border-radius: 25rpx;
|
||||
line-height: 50rpx;
|
||||
background-color: $u-type-warning!important;
|
||||
color: #ffffff!important;
|
||||
font-size: 24rpx;
|
||||
border: none;
|
||||
word-break: keep-all;
|
||||
}
|
||||
}
|
||||
}
|
||||
.tips {
|
||||
padding: 0 20rpx;
|
||||
border: 10rpx;
|
||||
background-color: $u-type-info-light;
|
||||
position: relative;
|
||||
color: $u-tips-color;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
line-height: 60rpx;
|
||||
font-size: 24rpx;
|
||||
.circle-left,
|
||||
.circle-right {
|
||||
position: absolute;
|
||||
height: 36rpx;
|
||||
width: 18rpx;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
.circle-right {
|
||||
border-radius: 40rpx 0 0 40rpx;
|
||||
right: 0;
|
||||
top: -18rpx;
|
||||
}
|
||||
|
||||
.circle-left {
|
||||
border-radius: 0 40rpx 40rpx 0;
|
||||
left: 0;
|
||||
top: -18rpx;
|
||||
}
|
||||
.rule {
|
||||
font-size: 24rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text {
|
||||
margin-right: 10rpx;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jingdong {
|
||||
margin-top: 40rpx;
|
||||
width: 700rpx;
|
||||
height: auto;
|
||||
background-color: #ffffff;
|
||||
display: flex;
|
||||
.left {
|
||||
padding: 0 30rpx;
|
||||
background-color: rgb(95, 148, 224); //rgb(94, 152, 225);
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
color: #ffffff;
|
||||
.sum {
|
||||
margin-top: 50rpx;
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
.num {
|
||||
font-size: 80rpx;
|
||||
}
|
||||
}
|
||||
.type {
|
||||
margin-bottom: 50rpx;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
.right {
|
||||
padding: 20rpx 20rpx 0;
|
||||
font-size: 28rpx;
|
||||
.top {
|
||||
border-bottom: 2rpx dashed $u-border-color;
|
||||
.title {
|
||||
margin-right: 60rpx;
|
||||
line-height: 40rpx;
|
||||
.tag {
|
||||
padding: 4rpx 20rpx;
|
||||
background-color: rgb(73, 154, 201);
|
||||
border-radius: 20rpx;
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-size: 24rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
.bottom {
|
||||
display: flex;
|
||||
margin-top: 20rpx;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 10rpx;
|
||||
.date {
|
||||
font-size: 20rpx;
|
||||
flex: 1;
|
||||
}
|
||||
.immediate-use {
|
||||
height: auto;
|
||||
padding: 0 20rpx;
|
||||
font-size: 24rpx;
|
||||
border-radius: 40rpx;
|
||||
line-height: 40rpx;
|
||||
color: rgb(117, 142, 165);
|
||||
border: 2rpx solid rgb(117, 142, 165);
|
||||
}
|
||||
}
|
||||
}
|
||||
.tips {
|
||||
width: 100%;
|
||||
line-height: 50rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-size: 24rpx;
|
||||
.transpond {
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.explain {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.particulars {
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
box-sizing: border-box;
|
||||
padding-top: 8rpx;
|
||||
border-radius: 50%;
|
||||
background-color: $u-type-info-disabled;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.taobao {
|
||||
margin-top: 40rpx;
|
||||
width: 700rpx;
|
||||
background-color: white;
|
||||
padding: 30rpx 20rpx 20rpx;
|
||||
border-radius: 20rpx;
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 20rpx;
|
||||
font-size: 30rpx;
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.store {
|
||||
font-weight: 500;
|
||||
}
|
||||
.buddha {
|
||||
width: 70rpx;
|
||||
height: 70rpx;
|
||||
border-radius: 10rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.entrance {
|
||||
color: $u-type-info;
|
||||
border: solid 2rpx $u-type-info;
|
||||
line-height: 48rpx;
|
||||
padding: 0 30rpx;
|
||||
background: none;
|
||||
border-radius: 15px;
|
||||
}
|
||||
}
|
||||
.ticket {
|
||||
display: flex;
|
||||
.left {
|
||||
width: 70%;
|
||||
padding: 30rpx 20rpx;
|
||||
background-color: rgb(255, 245, 244);
|
||||
border-radius: 20rpx;
|
||||
border-right: dashed 2rpx rgb(224, 215, 211);
|
||||
display: flex;
|
||||
.picture {
|
||||
width: 172rpx;
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
.introduce {
|
||||
margin-left: 10rpx;
|
||||
.top{
|
||||
color:$u-type-warning;
|
||||
font-size: 28rpx;
|
||||
.big{
|
||||
font-size: 60rpx;
|
||||
font-weight: bold;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
.type{
|
||||
font-size: 28rpx;
|
||||
color: $u-type-info-dark;
|
||||
}
|
||||
.date{
|
||||
margin-top: 10rpx;
|
||||
font-size: 20rpx;
|
||||
color: $u-type-info-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
.right {
|
||||
width: 30%;
|
||||
padding: 40rpx 20rpx;
|
||||
background-color: rgb(255, 245, 244);
|
||||
border-radius: 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.use{
|
||||
height: auto;
|
||||
padding: 0 20rpx;
|
||||
font-size: 24rpx;
|
||||
border-radius: 40rpx;
|
||||
color: #ffffff!important;
|
||||
background-color: $u-type-warning!important;
|
||||
line-height: 40rpx;
|
||||
color: rgb(117, 142, 165);
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
<template>
|
||||
<view>
|
||||
<view class="u-padding-40">
|
||||
<u-button type="success" @click="showPop(true)">
|
||||
<u-icon name="red-packet"></u-icon>
|
||||
<text class="u-padding-left-10">发送1.00元红包</text>
|
||||
</u-button>
|
||||
</view>
|
||||
<u-keyboard
|
||||
default=""
|
||||
ref="uKeyboard"
|
||||
mode="number"
|
||||
:mask="true"
|
||||
:mask-close-able="false"
|
||||
:dot-enabled="false"
|
||||
v-model="show"
|
||||
:safe-area-inset-bottom="true"
|
||||
:tooltip="false"
|
||||
@change="onChange"
|
||||
@backspace="onBackspace">
|
||||
<view>
|
||||
<view class="u-text-center u-padding-20 money">
|
||||
<text>1.00</text>
|
||||
<text class="u-font-20 u-padding-left-10">元</text>
|
||||
<view class="u-padding-10 close" data-flag="false" @tap="showPop(false)">
|
||||
<u-icon name="close" color="#333333" size="28"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-flex u-row-center">
|
||||
<u-message-input
|
||||
mode="box"
|
||||
:maxlength="6"
|
||||
:dot-fill="true"
|
||||
v-model="password"
|
||||
:disabled-keyboard="true"
|
||||
@finish="finish"
|
||||
></u-message-input>
|
||||
</view>
|
||||
<view class="u-text-center u-padding-top-10 u-padding-bottom-20 tips">支付键盘</view>
|
||||
</view>
|
||||
</u-keyboard>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
show:false,
|
||||
password:''
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
onChange(val){
|
||||
if(this.password.length<6){
|
||||
this.password += val;
|
||||
}
|
||||
|
||||
if(this.password.length>=6){
|
||||
this.pay();
|
||||
}
|
||||
},
|
||||
onBackspace(e){
|
||||
if(this.password.length>0){
|
||||
this.password = this.password.substring(0,this.password.length-1);
|
||||
}
|
||||
},
|
||||
pay(){
|
||||
uni.showLoading({
|
||||
title:'支付中'
|
||||
})
|
||||
|
||||
setTimeout(()=>{
|
||||
uni.hideLoading();
|
||||
this.show = false;
|
||||
uni.showToast({
|
||||
icon:'success',
|
||||
title:'支付成功'
|
||||
})
|
||||
},2000);
|
||||
},
|
||||
showPop(flag = true){
|
||||
this.password = '';
|
||||
this.show = flag;
|
||||
},
|
||||
finish(){
|
||||
console.log(11111)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.money{
|
||||
font-size: 80rpx;
|
||||
color: $u-type-warning;
|
||||
position: relative;
|
||||
|
||||
.close{
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
right: 20rpx;
|
||||
line-height: 28rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
.tips{
|
||||
color:$u-tips-color;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
<template>
|
||||
<view>
|
||||
<u-popup v-model="show" mode="center" @close="close">
|
||||
<view class="bg">
|
||||
<view class="title">恭喜您获得</view>
|
||||
<view class="goods">
|
||||
<template v-if="result&&result.type==3">
|
||||
<view class="u-flex u-col-center u-row-center">
|
||||
<image style="height: 100px;" :src="result.img" mode="heightFix"></image>
|
||||
</view>
|
||||
<view class="u-flex u-row-center u-m-t-30">
|
||||
<view class="type">{{result.name}}</view>
|
||||
</view>
|
||||
</template>
|
||||
<template v-if="result&&result.type==2">
|
||||
<view class="u-flex color-money u-col-center u-row-center">
|
||||
<view class="money">{{result.number}}</view>
|
||||
<view class="font-bold " style="margin-top: 20rpx;font-size: 36rpx;">元</view>
|
||||
</view>
|
||||
<view class="u-flex u-m-t-24 u-row-center">
|
||||
<view class="type">现金红包</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
</view>
|
||||
|
||||
<view class="u-flex close u-row-center">
|
||||
<u-icon name="close-circle" :size="54" @click="close" color="#fff"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
result: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
open(data) {
|
||||
console.log(data);
|
||||
this.result = data
|
||||
this.show = true
|
||||
},
|
||||
close() {
|
||||
console.log('抽奖弹窗关闭');
|
||||
this.show = false
|
||||
// if(!this.result){
|
||||
// return
|
||||
// }
|
||||
// const {
|
||||
// orderId,
|
||||
// id
|
||||
// } = this.result
|
||||
// this.$Request.postJson('app/discSpinning/receive', this.result).then(res => {
|
||||
// this.result = ''
|
||||
// console.log(res)
|
||||
// if (res.code == 0) {
|
||||
// console.log('抽奖领取成功');
|
||||
// const key=res.data==0?'isBindAliPay':undefined
|
||||
// this.$emit('close',key)
|
||||
// if(key&&key=='isBindAliPay'){
|
||||
// uni.navigateTo({
|
||||
// url:'/me/invite/zhifubao'
|
||||
// })
|
||||
// }
|
||||
// } else {
|
||||
// }
|
||||
// })
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .u-mode-center-box {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.color-money {
|
||||
color: #E42F00;
|
||||
}
|
||||
|
||||
.money {
|
||||
font-weight: 700;
|
||||
font-size: 96rpx;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
.bg {
|
||||
width: 628rpx;
|
||||
height: 770rpx;
|
||||
margin-right: 10rpx;
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
background-image: url("~static/images/zhuanpan/gift.png");
|
||||
position: relative;
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 2),
|
||||
(min-device-pixel-ratio: 2) {
|
||||
background-image: url("~static/images/zhuanpan/gift@2x.png");
|
||||
}
|
||||
|
||||
.title {
|
||||
position: absolute;
|
||||
top: 218rpx;
|
||||
text-align: center;
|
||||
left: 0;
|
||||
right: 0;
|
||||
font-weight: 700;
|
||||
font-size: 60rpx;
|
||||
color: #AF6920;
|
||||
letter-spacing: 4rpx;
|
||||
}
|
||||
|
||||
.goods {
|
||||
position: absolute;
|
||||
top: 336rpx;
|
||||
text-align: center;
|
||||
left: 0;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.type {
|
||||
padding: 6rpx 28rpx;
|
||||
border-radius: 100rpx;
|
||||
background: #E25B41;
|
||||
font-size: 28rpx;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.close{
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
.btn-box {
|
||||
position: absolute;
|
||||
top: 574rpx;
|
||||
left: 0;
|
||||
right: 0;
|
||||
|
||||
.btn {
|
||||
padding: 10rpx 60rpx 10rpx 64rpx;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 44rpx;
|
||||
color: #AF6920;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
|
||||
<u-navbar title="抽奖" back-icon-color="#fff" :background="{background:'transparent'}" immersive
|
||||
:border-bottom="false" title-color="#fff"></u-navbar>
|
||||
<view class="sm">
|
||||
<HM-slotMachine ref="HMslotMachine"></HM-slotMachine>
|
||||
</view>
|
||||
<view class="start" @tap="start">
|
||||
<text>开 始</text>
|
||||
</view>
|
||||
|
||||
<ling-qu ref="refLingqu"></ling-qu>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import lingQu from './components/pop-ling-qu.vue'
|
||||
|
||||
function isAllElementssame(array, key) {
|
||||
for (let index = 0; index < array.length; index++) {
|
||||
if (array[index][key] != array[0][key]) {
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export default {
|
||||
components: {
|
||||
lingQu
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
prizeList: [{
|
||||
name: 'iPhone13',
|
||||
value: 'iPhone',
|
||||
img: require('@/other/static/1.png')
|
||||
},
|
||||
{
|
||||
name: 'airPods3',
|
||||
value: 'airPods',
|
||||
img: require('@/other/static/2.png')
|
||||
},
|
||||
{
|
||||
name: '行李箱',
|
||||
value: 'luggage',
|
||||
img: require('@/other/static/3.png')
|
||||
},
|
||||
{
|
||||
name: '风筒',
|
||||
value: 'dryer',
|
||||
img: require('@/other/static/4.png')
|
||||
},
|
||||
{
|
||||
name: '平行车',
|
||||
value: 'balanceCar',
|
||||
img: require('@/other/static/5.png')
|
||||
},
|
||||
{
|
||||
name: 'iPad5',
|
||||
value: 'iPad',
|
||||
img: require('@/other/static/6.png')
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onReady() {
|
||||
// init(options)初始化抽奖组件
|
||||
// options参数说明
|
||||
// prizeList 奖品列表,结构看上面
|
||||
// defaultResults 默认显示奖品 初始化完成默认显示的奖品
|
||||
// duration 总抽奖时长 毫秒
|
||||
// direction 滚动方向 up|down
|
||||
this.$refs.HMslotMachine.init({
|
||||
prizeList: this.prizeList,
|
||||
defaultResults: ['iPhone', 'iPhone', 'iPhone'],
|
||||
duration: 4000,
|
||||
direction: 'up'
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
showLingPop(data) {
|
||||
this.$refs.refLingqu.open(data)
|
||||
},
|
||||
start() {
|
||||
// roll(options)开始摇奖
|
||||
// 参数说明
|
||||
// results 开奖结果,结构[value,value,value] value为奖品数据的value值
|
||||
// success 开奖回调 e={results} results为开奖结果数据
|
||||
const that = this;
|
||||
this.$refs.HMslotMachine.roll({
|
||||
results: this.getResults(),
|
||||
success: (e) => {
|
||||
console.log("success e: ", e);
|
||||
const item = isAllElementssame(e.results, 'value') ? e.results[0] : undefined
|
||||
if (item) {
|
||||
that.showLingPop({...item,type:3})
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '很遗憾,未中奖',
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
getResults() {
|
||||
// 生成随机的抽奖结果 实际应用应该ajax请求后台,让后台返回开奖结果
|
||||
let max = this.prizeList.length - 1;
|
||||
let arr = [Math.floor(Math.random() * (max - 1 + 1) + 1), Math.floor(Math.random() * (max - 1 + 1) + 1),
|
||||
Math.floor(Math.random() * (max - 1 + 1) + 1)
|
||||
];
|
||||
return [
|
||||
this.prizeList[arr[0]].value,
|
||||
this.prizeList[arr[1]].value,
|
||||
this.prizeList[arr[2]].value
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-image: linear-gradient(to top, #8F1E70, #51279A);
|
||||
min-height: calc(100vh - var(--window-bottom) - var(--window-top));
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.sm {
|
||||
margin-top: 200rpx;
|
||||
}
|
||||
|
||||
.start {
|
||||
width: 70%;
|
||||
height: 80rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #f29c11;
|
||||
border-radius: 40rpx;
|
||||
margin-top: 30rpx;
|
||||
box-shadow: 0 1px 2px rgba($color: #51279A, $alpha: 1);
|
||||
border-bottom: solid 3px #8d5805;
|
||||
box-sizing: border-box;
|
||||
|
||||
text {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: #b51c06;
|
||||
text-shadow: 1px 1px 1px #f2e811;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 151 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
|
@ -0,0 +1,779 @@
|
|||
<template>
|
||||
<view class="template-activity tn-safe-area-inset-bottom">
|
||||
<!-- 顶部自定义导航 -->
|
||||
<tn-nav-bar fixed alpha customBack>
|
||||
<view slot="back" class='tn-custom-nav-bar__back' @click="goBack">
|
||||
<text class='icon tn-icon-left'></text>
|
||||
<text class='icon tn-icon-home-capsule-fill'></text>
|
||||
</view>
|
||||
</tn-nav-bar>
|
||||
|
||||
|
||||
<!-- 方式4 start-->
|
||||
<!-- <view class="tn-flex">
|
||||
<view class="tn-flex-1 tn-padding-sm tn-radius" @click="tn('/activityPages/planet')">
|
||||
<view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
|
||||
<view class="icon4__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-shadow-blur">
|
||||
<view class="tn-icon-discover-planet-fill tn-cool-color-icon4 tn-cool-bg-color-5"></view>
|
||||
</view>
|
||||
<view class="tn-color-gray--dark tn-text-center">
|
||||
<text class="tn-text-ellipsis">知识星球</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tn-flex-1 tn-padding-sm tn-radius" @click="tn('/activityPages/project')">
|
||||
<view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
|
||||
<view class="icon4__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-shadow-blur">
|
||||
<view class="tn-icon-trophy-fill tn-cool-color-icon4 tn-cool-bg-color-15"></view>
|
||||
</view>
|
||||
<view class="tn-color-gray--dark tn-text-center">
|
||||
<text class="tn-text-ellipsis">开源项目</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tn-flex-1 tn-padding-sm tn-radius" @click="tn('/activityPages/map')">
|
||||
<view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
|
||||
<view class="icon4__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-shadow-blur">
|
||||
<view class="tn-icon-map-fill tn-cool-color-icon4 tn-cool-bg-color-8"></view>
|
||||
</view>
|
||||
<view class="tn-color-gray--dark tn-text-center">
|
||||
<text class="tn-text-ellipsis">地图打卡</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tn-flex-1 tn-padding-sm tn-radius" @click="tn('/activityPages/study')">
|
||||
<view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
|
||||
<view class="icon4__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-shadow-blur">
|
||||
<view class="tn-icon-creative-fill tn-cool-color-icon4 tn-cool-bg-color-3"></view>
|
||||
</view>
|
||||
<view class="tn-color-gray--dark tn-text-center">
|
||||
<text class="tn-text-ellipsis">课程学习</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- 方式4 end-->
|
||||
|
||||
<view class="tn-margin-top-lg">
|
||||
<view class="nav_title--wrap">
|
||||
<view class="nav_title tn-cool-bg-color-15">
|
||||
<text class="tn-icon-star tn-padding-right-sm"></text>
|
||||
工 / 具 / 集 / 合
|
||||
<text class="tn-icon-star tn-padding-left-sm"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class='nav-list tn-margin-bottom tn-margin-top'>
|
||||
|
||||
<block v-for="(item, index) in list1" :key="index">
|
||||
<view class="nav-list-item tn-shadow-blur tn-cool-bg-image"
|
||||
:class="['tn-main-gradient-' + item.color + '--light']">
|
||||
<view class="nav-link">
|
||||
<view class='title tn-text-bold' style="color: #080808;">{{ item.title }}</view>
|
||||
<view class='join tn-color-grey tn-text-sm'>{{ item.join }} 人参与</view>
|
||||
</view>
|
||||
<view class="icon tn-shadow-blur" :class="['tn-bg-' + item.color]">
|
||||
<view class="" :class="['tn-icon-' + item.icon]"></view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
</view>
|
||||
|
||||
<view class="tn-margin-top-lg">
|
||||
<view class="nav_title--wrap">
|
||||
<view class="nav_title tn-cool-bg-color-15">
|
||||
<text class="tn-icon-star tn-padding-right-sm"></text>
|
||||
友 / 情 / 链 / 接
|
||||
<text class="tn-icon-star tn-padding-left-sm"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class='nav-list tn-margin-bottom tn-margin-top'>
|
||||
|
||||
<navigator class="nav-list-item tn-shadow-blur tn-cool-bg-image"
|
||||
:class="['tn-main-gradient-' + item.color + '--light']" target="miniProgram" :app-id="item.appid"
|
||||
:path="item.path" version="release" delta="1" hover-class="none" v-for="(item, index) in linksData"
|
||||
:key="index">
|
||||
<view class="nav-link">
|
||||
<view class='title tn-text-bold' style="color: #080808;">{{ item.title }}</view>
|
||||
<view class='join tn-color-grey tn-text-sm'>{{ item.join }} 人查看</view>
|
||||
</view>
|
||||
<view class="icon tn-shadow-blur" :class="['tn-bg-' + item.color]">
|
||||
<view class="" :class="['tn-icon-' + item.icon]"></view>
|
||||
</view>
|
||||
</navigator>
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
<view class='tn-tabbar-height'></view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Discovery',
|
||||
data() {
|
||||
return {
|
||||
cardCur: 0,
|
||||
swiperList: [{
|
||||
id: 0,
|
||||
type: 'image',
|
||||
url: 'https://resource.tuniaokj.com/images/index_bg/pro1.jpg',
|
||||
}, {
|
||||
id: 1,
|
||||
type: 'image',
|
||||
url: 'https://resource.tuniaokj.com/images/index_bg/pro2.jpg',
|
||||
}, {
|
||||
id: 2,
|
||||
type: 'image',
|
||||
url: 'https://resource.tuniaokj.com/images/index_bg/pro3.jpg',
|
||||
}, {
|
||||
id: 3,
|
||||
type: 'image',
|
||||
url: 'https://resource.tuniaokj.com/images/index_bg/pro4.jpg',
|
||||
}, {
|
||||
id: 4,
|
||||
type: 'image',
|
||||
url: 'https://resource.tuniaokj.com/images/index_bg/pro5.jpg',
|
||||
}, {
|
||||
id: 5,
|
||||
type: 'image',
|
||||
url: 'https://resource.tuniaokj.com/images/index_bg/pro6.jpg',
|
||||
}],
|
||||
list1: [{
|
||||
icon: 'honor-fill',
|
||||
title: '称呼计算器',
|
||||
join: '629',
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
icon: 'count-fill',
|
||||
title: '支付宝语音生成',
|
||||
join: '268',
|
||||
color: 'purplered'
|
||||
},
|
||||
{
|
||||
icon: 'gloves-fill',
|
||||
title: '一周天气预报',
|
||||
join: '332',
|
||||
color: 'cyan'
|
||||
},
|
||||
{
|
||||
icon: 'trusty-fill',
|
||||
title: '今日星座运势',
|
||||
join: '106',
|
||||
color: 'orangeyellow'
|
||||
},
|
||||
{
|
||||
icon: 'hardware-fill',
|
||||
title: '来碗毒鸡汤',
|
||||
join: '98',
|
||||
color: 'indigo'
|
||||
},
|
||||
{
|
||||
icon: 'baby-fill',
|
||||
title: '垃圾分一分',
|
||||
join: '57',
|
||||
color: 'red'
|
||||
},
|
||||
{
|
||||
icon: 'safe-fill',
|
||||
title: '手持弹幕',
|
||||
join: '76',
|
||||
color: 'green'
|
||||
},
|
||||
{
|
||||
icon: 'flag-fill',
|
||||
title: '孩子取名',
|
||||
join: '225',
|
||||
color: 'orange'
|
||||
},
|
||||
{
|
||||
icon: 'topics-fill',
|
||||
title: '午餐吃什么',
|
||||
join: '422',
|
||||
color: 'teal'
|
||||
},
|
||||
{
|
||||
icon: 'light-fill',
|
||||
title: '朋友圈文案',
|
||||
join: '983',
|
||||
color: 'orangered'
|
||||
}
|
||||
],
|
||||
linksData: [{
|
||||
icon: 'honor-fill',
|
||||
join: '629',
|
||||
color: 'purplered',
|
||||
url: '',
|
||||
title: '司命',
|
||||
appid: 'wx734d93edc5b48019',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'count-fill',
|
||||
join: '268',
|
||||
color: 'blue',
|
||||
url: '',
|
||||
title: '爱小睡眠',
|
||||
appid: 'wx65880bde88b32037',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'gloves-fill',
|
||||
join: '332',
|
||||
color: 'orangeyellow',
|
||||
url: '',
|
||||
title: '群友作品',
|
||||
appid: '',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'trusty-fill',
|
||||
join: '106',
|
||||
color: 'cyan',
|
||||
url: '',
|
||||
title: '群友作品',
|
||||
appid: '',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'hardware-fill',
|
||||
join: '98',
|
||||
color: 'red',
|
||||
url: '',
|
||||
title: '群友作品',
|
||||
appid: '',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'baby-fill',
|
||||
join: '57',
|
||||
color: 'indigo',
|
||||
url: '',
|
||||
title: '群友作品',
|
||||
appid: '',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'safe-fill',
|
||||
join: '76',
|
||||
color: 'orange',
|
||||
url: '',
|
||||
title: '群友作品',
|
||||
appid: '',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'flag-fill',
|
||||
join: '225',
|
||||
color: 'green',
|
||||
url: '',
|
||||
title: '群友作品',
|
||||
appid: '',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'topics-fill',
|
||||
join: '422',
|
||||
color: 'orangered',
|
||||
url: '',
|
||||
title: '群友作品',
|
||||
appid: '',
|
||||
path: 'pages/index/index'
|
||||
},
|
||||
{
|
||||
icon: 'light-fill',
|
||||
join: '983',
|
||||
color: 'teal',
|
||||
url: '',
|
||||
title: '表情包制作',
|
||||
appid: 'wx096589e82af2ffa5',
|
||||
path: 'pages/index/index'
|
||||
}
|
||||
],
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
goBack(){
|
||||
uni.navigateBack()
|
||||
},
|
||||
// cardSwiper
|
||||
cardSwiper(e) {
|
||||
this.cardCur = e.detail.current
|
||||
},
|
||||
// 跳转
|
||||
tn(e) {
|
||||
uni.navigateTo({
|
||||
url: e,
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.template-activity {
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
.tn-tabbar-height {
|
||||
min-height: 120rpx;
|
||||
height: calc(140rpx + env(safe-area-inset-bottom) / 2);
|
||||
}
|
||||
|
||||
/* 胶囊*/
|
||||
.tn-custom-nav-bar__back {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
background-color: rgba(0, 0, 0, 0.15);
|
||||
border-radius: 1000rpx;
|
||||
border: 1rpx solid rgba(255, 255, 255, 0.5);
|
||||
color: #FFFFFF;
|
||||
font-size: 18px;
|
||||
|
||||
.icon {
|
||||
display: block;
|
||||
flex: 1;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: " ";
|
||||
width: 1rpx;
|
||||
height: 110%;
|
||||
position: absolute;
|
||||
top: 22.5%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
transform: scale(0.5);
|
||||
transform-origin: 0 0;
|
||||
pointer-events: none;
|
||||
box-sizing: border-box;
|
||||
opacity: 0.7;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
/* .tnphone-white-min 细边框*/
|
||||
.tnphone-white-min {
|
||||
width: 380rpx;
|
||||
height: 800rpx;
|
||||
border-radius: 40rpx;
|
||||
background: #E9E5F3;
|
||||
padding: 7rpx;
|
||||
display: table;
|
||||
color: #333;
|
||||
box-sizing: border-box;
|
||||
box-shadow: 0rpx 10rpx 50rpx 0rpx rgba(0, 0, 0, 0.15);
|
||||
margin: 70rpx auto;
|
||||
cursor: default;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.tnphone-white-min .skin {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 40rpx;
|
||||
background: #E9E5F3;
|
||||
padding: 10rpx;
|
||||
}
|
||||
|
||||
.tnphone-white-min .screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 30rpx;
|
||||
background: #E9E5F3;
|
||||
position: relative;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.tnphone-white-min .head {
|
||||
width: 100%;
|
||||
height: 90rpx;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
padding: 45rpx 15rpx 10rpx 15rpx;
|
||||
}
|
||||
|
||||
.tnphone-white-min .peak {
|
||||
left: 22%;
|
||||
width: 56%;
|
||||
height: 27rpx;
|
||||
margin: -2rpx auto 0rpx;
|
||||
border-radius: 0 0 20rpx 20rpx;
|
||||
background: #E9E5F3;
|
||||
position: absolute
|
||||
}
|
||||
|
||||
.tnphone-white-min .sound {
|
||||
width: 48rpx;
|
||||
height: 6rpx;
|
||||
border-radius: 15rpx;
|
||||
background: #555;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-left: -24rpx;
|
||||
margin-top: -10rpx;
|
||||
box-shadow: 0rpx 4rpx 4rpx 0rpx #444 inset
|
||||
}
|
||||
|
||||
.tnphone-white-min .lens {
|
||||
width: 6rpx;
|
||||
height: 6rpx;
|
||||
border-radius: 50%;
|
||||
background: #2c5487;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-left: 34rpx;
|
||||
margin-top: -10rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .talk {
|
||||
width: 50%;
|
||||
height: 6rpx;
|
||||
border-radius: 15rpx;
|
||||
background: rgba(0, 0, 0, .3);
|
||||
position: absolute;
|
||||
bottom: 8rpx;
|
||||
left: 50%;
|
||||
margin-left: -25%
|
||||
}
|
||||
|
||||
.tnphone-white-min .area-l,
|
||||
.tnphone-white-min .area-r {
|
||||
width: 70rpx;
|
||||
height: 16rpx;
|
||||
position: absolute;
|
||||
top: 6rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .area-l {
|
||||
left: 0;
|
||||
text-align: center;
|
||||
font-size: 12rpx;
|
||||
line-height: 22rpx;
|
||||
text-indent: 10rpx;
|
||||
font-weight: 600;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
|
||||
.tnphone-white-min .area-r {
|
||||
right: 0;
|
||||
text-align: center;
|
||||
font-size: 12rpx;
|
||||
line-height: 22rpx;
|
||||
text-indent: 10rpx;
|
||||
font-weight: 600;
|
||||
padding-right: 20rpx;
|
||||
}
|
||||
|
||||
.tnphone-white-min .fa-feed {
|
||||
float: left;
|
||||
font-size: 12rpx !important;
|
||||
transform: rotate(-45deg);
|
||||
margin-top: 4rpx;
|
||||
margin-right: 8rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .fa-battery-full {
|
||||
float: left;
|
||||
font-size: 12rpx !important;
|
||||
margin-top: 6rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .fa-chevron-left {
|
||||
float: left;
|
||||
margin-top: 4rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .fa-cog {
|
||||
float: right;
|
||||
margin-top: 4rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .btn01 {
|
||||
width: 3rpx;
|
||||
height: 28rpx;
|
||||
border-radius: 3rpx 0 0 3rpx;
|
||||
background: #222;
|
||||
position: absolute;
|
||||
top: 105rpx;
|
||||
left: -3rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .btn02 {
|
||||
width: 3rpx;
|
||||
height: 54rpx;
|
||||
border-radius: 3rpx 0 0 3rpx;
|
||||
background: #222;
|
||||
position: absolute;
|
||||
top: 160rpx;
|
||||
left: -3rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .btn03 {
|
||||
width: 3rpx;
|
||||
height: 54rpx;
|
||||
border-radius: 3rpx 0 0 3rpx;
|
||||
background: #222;
|
||||
position: absolute;
|
||||
top: 230rpx;
|
||||
left: -3rpx
|
||||
}
|
||||
|
||||
.tnphone-white-min .btn04 {
|
||||
width: 3rpx;
|
||||
height: 86rpx;
|
||||
border-radius: 0 3rpx 3rpx 0;
|
||||
background: #222;
|
||||
position: absolute;
|
||||
top: 180rpx;
|
||||
right: -3rpx
|
||||
}
|
||||
|
||||
|
||||
/* 顶部背景图 start */
|
||||
.top-backgroup {
|
||||
height: 450rpx;
|
||||
z-index: -1;
|
||||
|
||||
.backgroud-image {
|
||||
width: 100%;
|
||||
height: 667rpx;
|
||||
// z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* 顶部背景图 end */
|
||||
|
||||
/* 轮播样机样式 start*/
|
||||
.card-swiper {
|
||||
height: 830rpx !important;
|
||||
}
|
||||
|
||||
.card-swiper swiper-item {
|
||||
width: 260rpx !important;
|
||||
// left: 170rpx;
|
||||
// width: 380rpx !important;
|
||||
// left: 185rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 0rpx 15rpx 90rpx 15rpx;
|
||||
overflow: initial;
|
||||
}
|
||||
|
||||
.card-swiper swiper-item .swiper-item {
|
||||
display: block;
|
||||
transform: scale(0.45);
|
||||
transition: all 0.2s ease-in 0s;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.card-swiper swiper-item.cur .swiper-item {
|
||||
transform: scale(0.65);
|
||||
transition: all 0.2s ease-in 0s;
|
||||
}
|
||||
|
||||
.image-banner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.image-banner image {
|
||||
width: 100%;
|
||||
height: 770rpx;
|
||||
// border: 1rpx solid red;
|
||||
}
|
||||
|
||||
/* 轮播指示点 start*/
|
||||
.indication {
|
||||
z-index: 9999;
|
||||
width: 100%;
|
||||
height: 36rpx;
|
||||
position: absolute;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.spot {
|
||||
background-color: #000;
|
||||
opacity: 0;
|
||||
width: 10rpx;
|
||||
height: 10rpx;
|
||||
border-radius: 20rpx;
|
||||
margin: 0 8rpx !important;
|
||||
top: -80rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.spot.active {
|
||||
opacity: 0;
|
||||
width: 30rpx;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
/* 图标容器4 start */
|
||||
.tn-cool-color-icon4 {
|
||||
// background-image: -webkit-linear-gradient(135deg, #ED1C24, #FECE12); 16
|
||||
// background-image: linear-gradient(135deg, #ED1C24, #FECE12);
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.icon4 {
|
||||
&__item {
|
||||
width: 30%;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 10rpx;
|
||||
padding: 30rpx;
|
||||
margin: 20rpx 10rpx;
|
||||
transform: scale(1);
|
||||
transition: transform 0.3s linear;
|
||||
transform-origin: center center;
|
||||
|
||||
&--icon {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
font-size: 55rpx;
|
||||
border-radius: 50%;
|
||||
margin-bottom: 18rpx;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
box-shadow: 0px 10px 30px rgba(70, 23, 129, 0.12),
|
||||
0px -8px 40px rgba(255, 255, 255, 1),
|
||||
inset 0px -10px 10px rgba(70, 23, 129, 0.05),
|
||||
inset 0px 10px 20px rgba(255, 255, 255, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 标题 start */
|
||||
.nav_title {
|
||||
-webkit-background-clip: text;
|
||||
color: transparent;
|
||||
|
||||
&--wrap {
|
||||
position: relative;
|
||||
display: flex;
|
||||
height: 120rpx;
|
||||
font-size: 42rpx;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: bold;
|
||||
background-image: url(https://resource.tuniaokj.com/images/title_bg/title44.png);
|
||||
background-size: cover;
|
||||
}
|
||||
}
|
||||
|
||||
/* 标题 end */
|
||||
|
||||
/* 组件导航列表 start*/
|
||||
.nav-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0rpx 12rpx 0rpx;
|
||||
justify-content: space-between;
|
||||
|
||||
/* 列表元素 start */
|
||||
.nav-list-item {
|
||||
padding: 95rpx 30rpx 5rpx 30rpx;
|
||||
border-radius: 12rpx;
|
||||
width: 45%;
|
||||
margin: 0 18rpx 40rpx;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
position: relative;
|
||||
z-index: 99;
|
||||
|
||||
/* 元素标题 start */
|
||||
.nav-link {
|
||||
font-size: 32rpx;
|
||||
text-transform: capitalize;
|
||||
padding: 0 0 10rpx 0;
|
||||
position: relative;
|
||||
|
||||
.title {
|
||||
color: #FFFFFF;
|
||||
margin-top: 100rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.join {
|
||||
color: #FFFFFF;
|
||||
margin-top: 20rpx;
|
||||
margin-bottom: 40rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
/* 元素标题 end */
|
||||
|
||||
/* 元素图标 start */
|
||||
.icon {
|
||||
font-variant: small-caps;
|
||||
position: absolute;
|
||||
top: 60rpx;
|
||||
right: 50rpx;
|
||||
left: 37%;
|
||||
width: 90rpx;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-flex;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
vertical-align: middle;
|
||||
font-size: 50rpx;
|
||||
color: #FFFFFF;
|
||||
white-space: nowrap;
|
||||
opacity: 0.9;
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
background-size: cover;
|
||||
background-position: 50%;
|
||||
border-radius: 5000rpx;
|
||||
|
||||
&::after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
border-radius: inherit;
|
||||
opacity: 1;
|
||||
transform: scale(1, 1);
|
||||
background-size: 100% 100%;
|
||||
background-image: url(https://resource.tuniaokj.com/images/cool_bg_image/icon_bg2.png);
|
||||
}
|
||||
}
|
||||
|
||||
/* 元素图标 end */
|
||||
}
|
||||
|
||||
/* 列表元素 end */
|
||||
}
|
||||
|
||||
/* 组件导航列表 end*/
|
||||
</style>
|
||||
|
|
@ -0,0 +1,570 @@
|
|||
<template>
|
||||
<view class="template-reserve tn-safe-area-inset-bottom">
|
||||
<!-- 顶部自定义导航 -->
|
||||
<tn-nav-bar fixed alpha customBack>
|
||||
<view slot="back" class='tn-custom-nav-bar__back'
|
||||
@click="goBack">
|
||||
<text class='icon tn-icon-left'></text>
|
||||
<text class='icon tn-icon-home-capsule-fill'></text>
|
||||
</view>
|
||||
</tn-nav-bar>
|
||||
|
||||
|
||||
<!-- 页面内容 -->
|
||||
<view class="slideshow">
|
||||
<view class="slideshow-image" style="background-image: url('https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg')"></view>
|
||||
<view class="slideshow-image" style="background-image: url('https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg')"></view>
|
||||
<view class="slideshow-image" style="background-image: url('https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg')"></view>
|
||||
<view class="slideshow-image" style="background-image: url('https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg')"></view>
|
||||
</view>
|
||||
|
||||
<view class="reserve tn-safe-area-inset-bottom" :style="{paddingTop: vuex_custom_bar_height + 'px'}">
|
||||
<view class="reserve-content tn-padding tn-color-black tn-text-lg dd-glass2" style="margin:71vh 30rpx 20vh 30rpx">
|
||||
<view class="tn-text-center tn-text-bold tn-padding-top tn-padding-bottom">
|
||||
活动详情
|
||||
</view>
|
||||
<view class="">
|
||||
|
||||
<view class="blogger__desc tn-margin-top-sm tn-margin-bottom-sm tn-text-justify tn-flex-col-center tn-flex-row-left">
|
||||
<view class="blogger__desc__label tn-float-left tn-margin-right tn-bg-gray--light tn-round tn-text-sm tn-text-bold">
|
||||
<text class="blogger__desc__label--prefix">#</text>
|
||||
<text class="tn-text-df">常回家看看</text>
|
||||
</view>
|
||||
<!-- 不用限制长度了,因为发布的时候限制长度了-->
|
||||
<text class="blogger__desc__content tn-flex-1 tn-text-justify tn-text-df">
|
||||
可爱的校友,让我们相约华软,来一场说看就看的木棉雨;通知将于活动前一晚送达,请查收!!
|
||||
</text>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
<view class="tn-padding-top-lg">
|
||||
集合时间:2024年12月20日 12:00:00
|
||||
</view>
|
||||
<view class="">
|
||||
集合地点:喷泉广场
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<!-- <view class="tn-margin-top tn-color-black tn-bg-white tn-radius" >
|
||||
<view class="tn-flex tn-flex-row-between tn-flex-col-center">
|
||||
<view class="justify-content-item">
|
||||
<view class="tn-flex tn-flex-col-center tn-flex-row-left">
|
||||
<view class="tn-padding tn-color-black">
|
||||
<view class="tn-padding-right-sm tn-text-lg tn-text-bold clamp-text-1">
|
||||
广东省广州市番禺祈福新村129号
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tn-flex justify-content-item tn-flex-row-center tn-padding-right-xs">
|
||||
<view class="tn-bg-gray--light tn-padding-xs tn-margin-sm tn-color-black tn-round">
|
||||
<text class="tn-icon-location-fill" style="font-size: 50rpx;"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<view class="tn-text-center tn-text-bold tn-padding-top-xl">
|
||||
活动参与者
|
||||
</view>
|
||||
|
||||
<tn-read-more :closeBtn="true" openText="查看更多参与者" openIcon="more-circle" closeText="折叠起来" closeIcon="close" :showHeight="300">
|
||||
|
||||
<view class="tn-flex tn-flex-wrap tn-margin-top-xl">
|
||||
<block v-for="(item, index) in groupList" :key="index">
|
||||
<view class="tn-padding-bottom tn-padding-left" style="width: 20%;">
|
||||
<view class="tn-flex tn-flex-row-left tn-flex-col-center" style="">
|
||||
<view class="user-pic">
|
||||
<view class="user-image">
|
||||
<view class="tn-shadow-blur" :style="'background-image:url('+ item.src +');width: 70rpx;height: 70rpx;background-size: cover;'">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
</tn-read-more>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
<view class="tn-footerfixed tn-flex tn-flex-row-between tn-flex-col-center tn-padding tn-safe-area-inset-bottom dd-glass">
|
||||
<view class="justify-content-item tn-padding-bottom">
|
||||
<view class="tn-flex tn-flex-col-center tn-flex-row-left">
|
||||
<view class="user-pic">
|
||||
<view class="user-image">
|
||||
<view class="tn-shadow-blur" style="background-image:url('https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg');width: 70rpx;height: 70rpx;background-size: cover;">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 按钮-->
|
||||
<view class="justify-content-item tn-flex-col-center tn-flex-row-center tn-text-center tn-padding-bottom">
|
||||
<view class="tn-flex tn-flex-row-between">
|
||||
<view class="justify-content-item tn-margin-xs tn-text-center" style="width: 300rpx;">
|
||||
<tn-button shape="round" backgroundColor="#00FFC6" padding="40rpx 0" width="90%" shadow fontBold>
|
||||
<text class="tn-icon-topic tn-padding-right-xs tn-color-black"></text>
|
||||
<text class="tn-color-black">参与活动</text>
|
||||
</tn-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<view class="justify-content-item tn-flex-col-center tn-flex-row-center tn-text-center tn-padding-bottom" @click="openLocation">
|
||||
<view class="tn-bg-gray--light tn-padding-xs tn-margin-sm tn-color-black tn-round">
|
||||
<text class="tn-icon-location-fill" style="font-size: 50rpx;"></text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import template_page_mixin from '@/libs/mixin/template_page_mixin.js'
|
||||
export default {
|
||||
name: 'TemplateReserve',
|
||||
mixins: [template_page_mixin],
|
||||
data(){
|
||||
return {
|
||||
groupList: [
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/shop/phonecase1.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/shop/cup1.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/shop/watch1.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_2.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_4.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/blogger_beibei.jpg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_1.jpeg'},
|
||||
{src: 'https://resource.tuniaokj.com/images/blogger/avatar_3.jpeg'},
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openLocation() {
|
||||
uni.openLocation({
|
||||
longitude: 113.3298396012573,
|
||||
latitude: 22.961803525530176,
|
||||
name: '祈福新村',
|
||||
address: '祈福新村'
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.template-reserve {
|
||||
}
|
||||
/* 胶囊*/
|
||||
.tn-custom-nav-bar__back {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
background-color: rgba(0, 0, 0, 0.15);
|
||||
border-radius: 1000rpx;
|
||||
border: 1rpx solid rgba(255, 255, 255, 0.5);
|
||||
color: #FFFFFF;
|
||||
font-size: 18px;
|
||||
|
||||
.icon {
|
||||
display: block;
|
||||
flex: 1;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: " ";
|
||||
width: 1rpx;
|
||||
height: 110%;
|
||||
position: absolute;
|
||||
top: 22.5%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
transform: scale(0.5);
|
||||
transform-origin: 0 0;
|
||||
pointer-events: none;
|
||||
box-sizing: border-box;
|
||||
opacity: 0.7;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
/* 内容*/
|
||||
.reserve{
|
||||
position: relative;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
.reserve-content{
|
||||
background-color: rgba(255,255,255,0.7);
|
||||
border-radius: 30rpx;
|
||||
}
|
||||
|
||||
|
||||
/* 标签 */
|
||||
.blogger {
|
||||
&__item {
|
||||
padding: 30rpx;
|
||||
}
|
||||
|
||||
&__desc {
|
||||
line-height: 55rpx;
|
||||
|
||||
&__label {
|
||||
padding: 0 20rpx;
|
||||
margin: 0rpx 18rpx 0 0;
|
||||
|
||||
&--prefix {
|
||||
color: #00FFC8;
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* 文字截取*/
|
||||
.clamp-text-1 {
|
||||
-webkit-line-clamp: 1;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.clamp-text-2 {
|
||||
-webkit-line-clamp: 2;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* 毛玻璃*/
|
||||
.dd-glass {
|
||||
width: 100%;
|
||||
backdrop-filter: blur(20rpx);
|
||||
-webkit-backdrop-filter: blur(20rpx);
|
||||
}
|
||||
|
||||
/* 毛玻璃*/
|
||||
.dd-glass2 {
|
||||
// width: 100%;
|
||||
backdrop-filter: blur(8rpx);
|
||||
-webkit-backdrop-filter: blur(8rpx);
|
||||
}
|
||||
|
||||
/* 用户头像 start */
|
||||
.user-image {
|
||||
width: 70rpx;
|
||||
height: 70rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.user-pic {
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
// background-attachment:fixed;
|
||||
background-position: top;
|
||||
border-radius: 100rpx;
|
||||
overflow: hidden;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
/* 底部悬浮按钮 start*/
|
||||
.tn-tabbar-height {
|
||||
min-height: 120rpx;
|
||||
height: calc(140rpx + env(safe-area-inset-bottom) / 2);
|
||||
}
|
||||
.tn-footerfixed {
|
||||
position: fixed;
|
||||
background-color: rgba(255,255,255,0.5);
|
||||
box-shadow: 0rpx 0rpx 30rpx 0rpx rgba(0, 0, 0, 0.07);
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
transition: all 0.25s ease-out;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
|
||||
/* 相册 start*/
|
||||
.slideshow {
|
||||
top: 0;
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.slideshow-image {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: no-repeat 50% 50%;
|
||||
background-size: cover;
|
||||
-webkit-animation-name: kenburns;
|
||||
animation-name: kenburns;
|
||||
-webkit-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
-webkit-animation-duration: 16s;
|
||||
animation-duration: 16s;
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
.slideshow-image:nth-child(1) {
|
||||
-webkit-animation-name: kenburns-1;
|
||||
animation-name: kenburns-1;
|
||||
z-index: 3;
|
||||
}
|
||||
.slideshow-image:nth-child(2) {
|
||||
-webkit-animation-name: kenburns-2;
|
||||
animation-name: kenburns-2;
|
||||
z-index: 2;
|
||||
}
|
||||
.slideshow-image:nth-child(3) {
|
||||
-webkit-animation-name: kenburns-3;
|
||||
animation-name: kenburns-3;
|
||||
z-index: 1;
|
||||
}
|
||||
.slideshow-image:nth-child(4) {
|
||||
-webkit-animation-name: kenburns-4;
|
||||
animation-name: kenburns-4;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
@-webkit-keyframes kenburns-1 {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
1.5625% {
|
||||
opacity: 1;
|
||||
}
|
||||
23.4375% {
|
||||
opacity: 1;
|
||||
}
|
||||
26.5625% {
|
||||
opacity: 0;
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
98.4375% {
|
||||
opacity: 0;
|
||||
transform: scale(1.2117647059);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes kenburns-1 {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
1.5625% {
|
||||
opacity: 1;
|
||||
}
|
||||
23.4375% {
|
||||
opacity: 1;
|
||||
}
|
||||
26.5625% {
|
||||
opacity: 0;
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
98.4375% {
|
||||
opacity: 0;
|
||||
transform: scale(1.2117647059);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes kenburns-2 {
|
||||
23.4375% {
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
26.5625% {
|
||||
opacity: 1;
|
||||
}
|
||||
48.4375% {
|
||||
opacity: 1;
|
||||
}
|
||||
51.5625% {
|
||||
opacity: 0;
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
}
|
||||
@keyframes kenburns-2 {
|
||||
23.4375% {
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
26.5625% {
|
||||
opacity: 1;
|
||||
}
|
||||
48.4375% {
|
||||
opacity: 1;
|
||||
}
|
||||
51.5625% {
|
||||
opacity: 0;
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes kenburns-3 {
|
||||
48.4375% {
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
51.5625% {
|
||||
opacity: 1;
|
||||
}
|
||||
73.4375% {
|
||||
opacity: 1;
|
||||
}
|
||||
76.5625% {
|
||||
opacity: 0;
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
}
|
||||
@keyframes kenburns-3 {
|
||||
48.4375% {
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
51.5625% {
|
||||
opacity: 1;
|
||||
}
|
||||
73.4375% {
|
||||
opacity: 1;
|
||||
}
|
||||
76.5625% {
|
||||
opacity: 0;
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes kenburns-4 {
|
||||
73.4375% {
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
76.5625% {
|
||||
opacity: 1;
|
||||
}
|
||||
98.4375% {
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@keyframes kenburns-4 {
|
||||
73.4375% {
|
||||
opacity: 1;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
76.5625% {
|
||||
opacity: 1;
|
||||
}
|
||||
98.4375% {
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
/* 相册 end*/
|
||||
</style>
|
||||
|
|
@ -0,0 +1,854 @@
|
|||
{
|
||||
"easycom": {
|
||||
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue",
|
||||
"^tn-(.*)": "@/tuniao-ui/components/tn-$1/tn-$1.vue"
|
||||
},
|
||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
{
|
||||
"path": "pages/task/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "任务",
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "斯耀短剧",
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/task/prizeList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "任务",
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/task/receiveMember",
|
||||
"style": {
|
||||
"navigationBarTitleText": "任务",
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/me/erweimaRegister",
|
||||
"style": {
|
||||
"navigationBarTitleText": "短剧",
|
||||
"navigationStyle": "custom", // 隐藏系统导航栏
|
||||
"navigationBarTextStyle": "white", // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/search/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "搜索",
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/course/courseList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "资源列表",
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "pages/index/course/orderDet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "确认订单",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/webView",
|
||||
"style": {
|
||||
"navigationBarTitleText": "网页",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"path": "pages/learn/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "学习",
|
||||
"enablePullDownRefresh": true,
|
||||
"app-plus": {
|
||||
"titleNView": false, //禁用原生导航栏
|
||||
"bounce": "none",
|
||||
"scrollIndicator": "none"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/me/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/me/userinfo",
|
||||
"style": {
|
||||
"navigationBarTitleText": "个人资料",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"path": "pages/me/vip/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "会员中心",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"path": "pages/login/login",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/login/registerApp",
|
||||
"style": {
|
||||
"navigationBarTitleText": "注册",
|
||||
"navigationBarBackgroundColor": "#f1a48a",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#f1a48a"
|
||||
}
|
||||
}
|
||||
// #ifdef H5
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/login/loginPhone",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"path": "pages/login/bind",
|
||||
"style": {
|
||||
"navigationBarTitleText": "绑定手机号",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/login/register",
|
||||
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarBackgroundColor": "#f1a48a",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#f1a48a"
|
||||
}
|
||||
}
|
||||
// #ifdef H5
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/login/forgetPwd",
|
||||
"style": {
|
||||
"navigationBarTitleText": "重置密码",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"path": "pages/chasingDrama/chasingDrama",
|
||||
"style": {
|
||||
"navigationBarTitleText": "追剧",
|
||||
"enablePullDownRefresh": false
|
||||
// #ifdef H5
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/video/video",
|
||||
"style": {
|
||||
"navigationBarTitleText": "推荐",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#000"
|
||||
// #ifndef MP-TOUTIAO
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
// #ifdef MP-TOUTIAO
|
||||
,
|
||||
"usingComponents": {
|
||||
"video-player": "ext://industry/video-player"
|
||||
}
|
||||
// #endif
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/login/appEq",
|
||||
"style": {
|
||||
"navigationBarTitleText": "注册成功",
|
||||
"enablePullDownRefresh": false
|
||||
// #ifdef H5
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
}
|
||||
}, {
|
||||
"path": "pages/login/iosmobile",
|
||||
"style": {
|
||||
"navigationBarTitleText": "手机号绑定"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/login/wxmobile",
|
||||
"style": {
|
||||
"navigationBarTitleText": "手机号绑定"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/login/phonebind",
|
||||
"style": {
|
||||
"navigationBarTitleText": "手机号绑定"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/pays/pays",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/first/first",
|
||||
"style": {
|
||||
"navigationBarTitleText": "开屏广告",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
],
|
||||
"subPackages": [{
|
||||
"root": "me",
|
||||
"pages": [{
|
||||
"path": "feedback/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "意见反馈",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "balance/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的余额"
|
||||
}
|
||||
}, {
|
||||
"path": "feedbackIndex/feedbackIndex",
|
||||
"style": {
|
||||
"navigationBarTitleText": "帮助中心",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "helpDetail/helpDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "帮助详情",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "message/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "消息中心"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "course/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的课程",
|
||||
"enablePullDownRefresh": true,
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "分享好友",
|
||||
"navigationStyle": "custom",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/inviteDet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的团队",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/cashDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "申请提现",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/zhifubao",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提现账号",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/cashList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提现记录",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/moneyList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "红包明细",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "integral/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的积分",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "collect/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的收藏",
|
||||
"enablePullDownRefresh": true,
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "设置",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"path": "setting/kefu",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客服",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "integral/inviteDet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的钱包",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/xieyi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "用户协议",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/mimi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "隐私协议",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/bind",
|
||||
"style": {
|
||||
"navigationBarTitleText": "换绑手机号",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
|
||||
"path": "detail/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#000000",
|
||||
"style": {
|
||||
"safeAreaInsetBottom": "none"
|
||||
},
|
||||
"app-plus": {
|
||||
// "subNVues": [{
|
||||
// "id": "pay", // 唯一标识
|
||||
// "path": "detail/subNvue/pay", // 页面路径
|
||||
// // "type": "popup",
|
||||
// "style": {
|
||||
// "position": "popup",
|
||||
// "dock": "bottom",
|
||||
// "width": "750rpx",
|
||||
// "height": "150rpx",
|
||||
// "background": "#fff"
|
||||
// }
|
||||
// }],
|
||||
"bounce": "none",
|
||||
"safearea": {
|
||||
"bottom": {
|
||||
"offset": "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
// #ifndef MP-TOUTIAO
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
// #ifdef MP-TOUTIAO
|
||||
,
|
||||
"usingComponents": {
|
||||
"video-player": "ext://industry/video-player"
|
||||
}
|
||||
// #endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
}, {
|
||||
|
||||
"path": "detail/detailIOS",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#000000",
|
||||
"style": {
|
||||
"safeAreaInsetBottom": "none"
|
||||
},
|
||||
"app-plus": {
|
||||
// "subNVues": [{
|
||||
// "id": "pay", // 唯一标识
|
||||
// "path": "detail/subNvue/pay", // 页面路径
|
||||
// // "type": "popup",
|
||||
// "style": {
|
||||
// "position": "popup",
|
||||
// "dock": "bottom",
|
||||
// "width": "750rpx",
|
||||
// "height": "150rpx",
|
||||
// "background": "#fff"
|
||||
// }
|
||||
// }],
|
||||
"bounce": "none",
|
||||
"safearea": {
|
||||
"bottom": {
|
||||
"offset": "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
// #ifndef MP-TOUTIAO
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
// #ifdef MP-TOUTIAO
|
||||
,
|
||||
"usingComponents": {
|
||||
"video-player": "ext://industry/video-player"
|
||||
}
|
||||
// #endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallet/wallet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "金币充值",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallet/wallet_detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "金币明细",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/record",
|
||||
"style": {
|
||||
"navigationBarTitleText": "最近观看",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/histor",
|
||||
"style": {
|
||||
"navigationBarTitleText": "追剧记录",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jifen/jifen",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的积分",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jifen/duihuan",
|
||||
"style": {
|
||||
"navigationBarTitleText": "积分兑换",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/myLove",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的喜欢",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "payOrder/payOrder",
|
||||
"style": {
|
||||
"navigationBarTitleText": "下单",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "setting/logOff",
|
||||
"style": {
|
||||
"navigationBarTitleText": "注销账号",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "setting/offXieyi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "用户注销协议",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "juqing/juqing",
|
||||
"style": {
|
||||
"navigationBarTitleText": "剧情介绍",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallpaper/wallpaper",
|
||||
"style": {
|
||||
"navigationBarTitleText": "壁纸",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "assistance/assistance",
|
||||
"style": {
|
||||
"navigationBarTitleText": "助力领会员",
|
||||
"navigationBarBackgroundColor": "#F22947",
|
||||
"navigationBarTextStyle": "white",
|
||||
"enablePullDownRefresh": false
|
||||
// #ifdef H5
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/payXieYi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "付费须知说明",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "wallet/wallets",
|
||||
"style": {
|
||||
"navigationBarTitleText": "充值",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "choujiang/choujiang",
|
||||
"style": {
|
||||
"navigationBarTitleText": "抽奖",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "gift/gift",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTitleText": "奖品列表"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "gift/duihuan",
|
||||
"style": {
|
||||
"navigationBarTitleText": "兑换礼品"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "pay",
|
||||
"pages": [{
|
||||
"path": "success",
|
||||
"style": {
|
||||
"navigationBarTitleText": "支付成功"
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "other",
|
||||
"pages": [{
|
||||
"path": "index/index",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTitleText": "更多"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "about/about",
|
||||
"style": {
|
||||
"navigationBarTitleText": "关于我们"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "coup/coup",
|
||||
"style": {
|
||||
"navigationBarTitleText": "卡包"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "address/address",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货地址"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pay/pay",
|
||||
"style": {
|
||||
"navigationBarTitleText": "发红包"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "slotMachine/slotMachine",
|
||||
"style": {
|
||||
"navigationBarTitleText": "抽奖",
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "blogger/blogger",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "blogger/details",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "topic/topic",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "话题"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "topic/reserve",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "tools/tools",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "短剧",
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"backgroundColor": "#F8F8F8"
|
||||
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#333333",
|
||||
"selectedColor": "#FF7581",
|
||||
"backgroundColor": "#FFFFFF",
|
||||
"borderStyle": "black",
|
||||
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/task/index",
|
||||
"iconPath": "static/tabbar/task@2x.png",
|
||||
"selectedIconPath": "static/tabbar/task_@2x.png",
|
||||
"text": "任务"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/video/video",
|
||||
"iconPath": "static/tabbar/index@2x.png",
|
||||
"selectedIconPath": "static/tabbar/index_@2x.png",
|
||||
"text": "刷剧"
|
||||
}
|
||||
// ,
|
||||
// {
|
||||
// "pagePath": "pages/index/index",
|
||||
// "iconPath": "static/tabbar/index@2x.png",
|
||||
// "selectedIconPath": "static/tabbar/index_@2x.png",
|
||||
// "text": "刷剧"
|
||||
// }
|
||||
// {
|
||||
// "pagePath": "pages/video/video",
|
||||
// "iconPath": "static/tabbar/learn@2x.png",
|
||||
// "selectedIconPath": "static/tabbar/learn_@2x.png",
|
||||
// "text": "推荐"
|
||||
// },
|
||||
|
||||
// {
|
||||
// "pagePath": "pages/chasingDrama/chasingDrama",
|
||||
// "iconPath": "static/tabbar/zhuiju.png",
|
||||
// "selectedIconPath": "static/tabbar/zhuiju_.png",
|
||||
// "text": "追剧"
|
||||
// },
|
||||
// {
|
||||
// "pagePath": "pages/me/index",
|
||||
// "iconPath": "static/tabbar/me@2x.png",
|
||||
// "selectedIconPath": "static/tabbar/me_@2x.png",
|
||||
// "text": "我的"
|
||||
// }
|
||||
]
|
||||
},
|
||||
"condition": { //模式配置,仅开发期间生效
|
||||
"current": 0, //当前激活的模式(list 的索引项)
|
||||
"list": [{
|
||||
"name": "", //模式名称
|
||||
"path": "", //启动页面,必选
|
||||
"query": "" //启动参数,在页面的onLoad函数里面得到
|
||||
}]
|
||||
}
|
||||
}
|
||||
916
pages.json
|
|
@ -1,14 +1,47 @@
|
|||
{
|
||||
"easycom": {
|
||||
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
|
||||
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue",
|
||||
"^tn-(.*)": "@/tuniao-ui/components/tn-$1/tn-$1.vue"
|
||||
},
|
||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "小剧场",
|
||||
"navigationBarTitleText": "斯耀短剧",
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/task/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "任务",
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/task/stayTuned",
|
||||
"style": {
|
||||
"navigationBarTitleText": "任务",
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/task/prizeList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "任务",
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/task/receiveMember",
|
||||
"style": {
|
||||
"navigationBarTitleText": "任务",
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
|
|
@ -73,6 +106,15 @@
|
|||
"style": {
|
||||
"navigationBarTitleText": "我的",
|
||||
"navigationStyle": "custom"
|
||||
// #ifdef H5
|
||||
,"enablePullDownRefresh": true
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/me/webview",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客服"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -116,9 +158,10 @@
|
|||
"path": "pages/login/registerApp",
|
||||
"style": {
|
||||
"navigationBarTitleText": "注册",
|
||||
"navigationBarBackgroundColor": "#f1a48a",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
"backgroundColor": "#f1a48a"
|
||||
}
|
||||
}
|
||||
// #ifdef H5
|
||||
|
|
@ -150,13 +193,19 @@
|
|||
},
|
||||
{
|
||||
"path": "pages/login/register",
|
||||
|
||||
"style": {
|
||||
"navigationBarTitleText": "注册",
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarBackgroundColor": "#f1a48a",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
"backgroundColor": "#f1a48a"
|
||||
}
|
||||
}
|
||||
// #ifdef H5
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -173,7 +222,7 @@
|
|||
"path": "pages/chasingDrama/chasingDrama",
|
||||
"style": {
|
||||
"navigationBarTitleText": "追剧",
|
||||
"enablePullDownRefresh": false
|
||||
"enablePullDownRefresh": true
|
||||
// #ifdef H5
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
|
|
@ -227,338 +276,549 @@
|
|||
"style": {
|
||||
"navigationBarTitleText": "手机号绑定"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/pays/pays",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/first/first",
|
||||
"style": {
|
||||
"navigationBarTitleText": "开屏广告",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/pause/pause",
|
||||
"style" :
|
||||
{
|
||||
// "navigationBarTitleText" : "服务器维护中",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
],
|
||||
"subPackages": [{
|
||||
"root": "me",
|
||||
"pages": [{
|
||||
"path": "feedback/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "意见反馈",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "feedbackIndex/feedbackIndex",
|
||||
"style": {
|
||||
"navigationBarTitleText": "帮助中心",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "helpDetail/helpDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "帮助详情",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "message/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "消息中心"
|
||||
"root": "me",
|
||||
"pages": [{
|
||||
"path": "feedback/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "意见反馈",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "balance/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的余额"
|
||||
}
|
||||
}, {
|
||||
"path": "feedbackIndex/feedbackIndex",
|
||||
"style": {
|
||||
"navigationBarTitleText": "帮助中心",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "helpDetail/helpDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "帮助详情",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "message/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "消息中心"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "course/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的课程",
|
||||
"enablePullDownRefresh": true,
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "分享好友",
|
||||
"navigationStyle": "custom",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/inviteDet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的团队",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/cashDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "申请提现",
|
||||
"navigationStyle": "custom",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/realName",
|
||||
"style": {
|
||||
"navigationBarTitleText": "实名认证",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/zhifubao",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提现账号",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/cashList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提现记录",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/moneyList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "红包明细",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "integral/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的积分",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "collect/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的收藏",
|
||||
"enablePullDownRefresh": true,
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "设置",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"path": "setting/kefu",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客服",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "integral/inviteDet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的钱包",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/xieyi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "用户协议",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/mimi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "隐私协议",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/bind",
|
||||
"style": {
|
||||
"navigationBarTitleText": "换绑手机号",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "course/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的课程",
|
||||
"enablePullDownRefresh": true,
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
"path": "detail/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#000000",
|
||||
"style": {
|
||||
"safeAreaInsetBottom": "none"
|
||||
},
|
||||
"app-plus": {
|
||||
// "subNVues": [{
|
||||
// "id": "pay", // 唯一标识
|
||||
// "path": "detail/subNvue/pay", // 页面路径
|
||||
// // "type": "popup",
|
||||
// "style": {
|
||||
// "position": "popup",
|
||||
// "dock": "bottom",
|
||||
// "width": "750rpx",
|
||||
// "height": "150rpx",
|
||||
// "background": "#fff"
|
||||
// }
|
||||
// }],
|
||||
"bounce": "none",
|
||||
"safearea": {
|
||||
"bottom": {
|
||||
"offset": "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "分享好友",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/inviteDet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的团队",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/cashDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "申请提现",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/zhifubao",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提现账号",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/cashList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提现记录",
|
||||
"enablePullDownRefresh": true,
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "invite/moneyList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "钱包明细",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "integral/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的积分",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "collect/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的收藏",
|
||||
"enablePullDownRefresh": true,
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "设置",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"path": "setting/kefu",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客服",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "integral/inviteDet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的钱包",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/xieyi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "用户协议",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/mimi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "隐私协议",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/bind",
|
||||
"style": {
|
||||
"navigationBarTitleText": "换绑手机号",
|
||||
"h5": {
|
||||
"titleNView": {
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
|
||||
"path": "detail/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#000000",
|
||||
"app-plus": {
|
||||
"bounce": "none"
|
||||
}
|
||||
// #ifndef MP-TOUTIAO
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
// #ifdef MP-TOUTIAO
|
||||
// #ifndef MP-TOUTIAO
|
||||
,
|
||||
"usingComponents": {
|
||||
"video-player": "ext://industry/video-player"
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
// #ifdef MP-TOUTIAO
|
||||
,
|
||||
"usingComponents": {
|
||||
"video-player": "ext://industry/video-player"
|
||||
}
|
||||
// #endif
|
||||
|
||||
|
||||
}
|
||||
// #endif
|
||||
|
||||
}, {
|
||||
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallet/wallet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "金豆充值",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallet/mingxi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "金豆明细",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/jilu",
|
||||
"style": {
|
||||
"navigationBarTitleText": "最近观看",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/histor",
|
||||
"style": {
|
||||
"navigationBarTitleText": "追剧记录",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jifen/jifen",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的积分",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jifen/duihuan",
|
||||
"style": {
|
||||
"navigationBarTitleText": "积分兑换",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/myLove",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的喜欢",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "payOrder/payOrder",
|
||||
"style": {
|
||||
"navigationBarTitleText": "下单",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "setting/logOff",
|
||||
"style": {
|
||||
"navigationBarTitleText": "注销账号",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "setting/offXieyi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "用户注销协议",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "juqing/juqing",
|
||||
"style": {
|
||||
"navigationBarTitleText": "剧情介绍",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallpaper/wallpaper",
|
||||
"style": {
|
||||
"navigationBarTitleText": "壁纸",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "assistance/assistance",
|
||||
"style": {
|
||||
"navigationBarTitleText": "助力领会员",
|
||||
"navigationBarBackgroundColor": "#F22947",
|
||||
"navigationBarTextStyle": "white",
|
||||
"enablePullDownRefresh": false
|
||||
// #ifdef H5
|
||||
"path": "detail/detailIOS",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#000000",
|
||||
"style": {
|
||||
"safeAreaInsetBottom": "none"
|
||||
},
|
||||
"app-plus": {
|
||||
// "subNVues": [{
|
||||
// "id": "pay", // 唯一标识
|
||||
// "path": "detail/subNvue/pay", // 页面路径
|
||||
// // "type": "popup",
|
||||
// "style": {
|
||||
// "position": "popup",
|
||||
// "dock": "bottom",
|
||||
// "width": "750rpx",
|
||||
// "height": "150rpx",
|
||||
// "background": "#fff"
|
||||
// }
|
||||
// }],
|
||||
"bounce": "none",
|
||||
"safearea": {
|
||||
"bottom": {
|
||||
"offset": "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
// #ifndef MP-TOUTIAO
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
// #ifdef MP-TOUTIAO
|
||||
,
|
||||
"usingComponents": {
|
||||
"video-player": "ext://industry/video-player"
|
||||
}
|
||||
// #endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallet/wallet",
|
||||
"style": {
|
||||
"navigationBarTitleText": "金币充值",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallet/wallet_detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "金币明细",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/record",
|
||||
"style": {
|
||||
"navigationBarTitleText": "最近观看",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/histor",
|
||||
"style": {
|
||||
"navigationBarTitleText": "追剧记录",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jifen/jifen",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的积分",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jifen/duihuan",
|
||||
"style": {
|
||||
"navigationBarTitleText": "积分兑换",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "jilu/myLove",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的喜欢",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "payOrder/payOrder",
|
||||
"style": {
|
||||
"navigationBarTitleText": "下单",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "setting/logOff",
|
||||
"style": {
|
||||
"navigationBarTitleText": "注销账号",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "setting/offXieyi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "用户注销协议",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "juqing/juqing",
|
||||
"style": {
|
||||
"navigationBarTitleText": "剧情介绍",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "wallpaper/wallpaper",
|
||||
"style": {
|
||||
"navigationBarTitleText": "壁纸",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "assistance/assistance",
|
||||
"style": {
|
||||
"navigationBarTitleText": "助力领会员",
|
||||
"navigationBarBackgroundColor": "#F22947",
|
||||
"navigationBarTextStyle": "white",
|
||||
"enablePullDownRefresh": false
|
||||
// #ifdef H5
|
||||
,
|
||||
"navigationStyle": "custom"
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/payXieYi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "付费须知说明",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "wallet/wallets",
|
||||
"style": {
|
||||
"navigationBarTitleText": "充值",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "choujiang/choujiang",
|
||||
"style": {
|
||||
"navigationBarTitleText": "抽奖",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "gift/gift",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTitleText": "奖品列表"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "gift/duihuan",
|
||||
"style": {
|
||||
"navigationBarTitleText": "兑换礼品"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/payXieYi",
|
||||
"style": {
|
||||
"navigationBarTitleText": "付费须知说明",
|
||||
"enablePullDownRefresh": false
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "pay",
|
||||
"pages": [{
|
||||
"path": "success",
|
||||
"style": {
|
||||
"navigationBarTitleText": "支付成功"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "wallet/wallets",
|
||||
"style": {
|
||||
"navigationBarTitleText": "充值",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationStyle": "custom"
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "other",
|
||||
"pages": [{
|
||||
"path": "index/index",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTitleText": "更多"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "about/about",
|
||||
"style": {
|
||||
"navigationBarTitleText": "关于我们"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "coup/coup",
|
||||
"style": {
|
||||
"navigationBarTitleText": "卡包"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "address/address",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货地址"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pay/pay",
|
||||
"style": {
|
||||
"navigationBarTitleText": "发红包"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "slotMachine/slotMachine",
|
||||
"style": {
|
||||
"navigationBarTitleText": "抽奖",
|
||||
"navigationStyle": "custom"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "blogger/blogger",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "blogger/details",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "topic/topic",
|
||||
"style": {
|
||||
"navigationBarTitleText": "话题"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "topic/reserve",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "tools/tools",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}],
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
|
|
@ -585,6 +845,12 @@
|
|||
"selectedIconPath": "static/tabbar/learn_@2x.png",
|
||||
"text": "推荐"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/task/index",
|
||||
"iconPath": "static/tabbar/task@2x.png",
|
||||
"selectedIconPath": "static/tabbar/task_@2x.png",
|
||||
"text": "任务"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/chasingDrama/chasingDrama",
|
||||
"iconPath": "static/tabbar/zhuiju.png",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<view style="padding-bottom: 100rpx;">
|
||||
<view class="title flex align-center justify-center">
|
||||
<!-- <view class="title flex align-center justify-center">
|
||||
<view class="title-box">
|
||||
<view class="title-box-title flex align-center justify-between">
|
||||
<view class="title-box-title-l">
|
||||
|
|
@ -45,13 +45,13 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view v-if="list.length>0" class="itemTitle flex align-center justify-center">
|
||||
<view class="itemTitle-box flex align-center justify-between">
|
||||
<view class="itemTitle-box-l">
|
||||
最近观看
|
||||
</view>
|
||||
<view class="itemTitle-box-r" @click="goNav('/me/jilu/jilu')">
|
||||
<view class="itemTitle-box-r" @click="goNav('/me/jilu/record')">
|
||||
更多
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -113,15 +113,17 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { isEmpty } from '../../utils/util';
|
||||
import { $cache_chasingDrama} from '@/store/cashe.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isErQd: false, //昨天是否签到
|
||||
isQd: false, //今日是否已签到
|
||||
day: 0, //签到天数
|
||||
isErQd: $cache_chasingDrama.isErQd|| false, //昨天是否签到
|
||||
isQd: $cache_chasingDrama.isQd||false, //今日是否已签到
|
||||
day: $cache_chasingDrama.day|| 0, //签到天数
|
||||
numList: this.getThisWeekDates(),
|
||||
list: [],
|
||||
zhuiju: [],
|
||||
list: $cache_chasingDrama.list||[],
|
||||
zhuiju: $cache_chasingDrama.zhuiju|| [],
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
|
|
@ -135,6 +137,13 @@
|
|||
this.myQianInfo()
|
||||
}
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
$cache_chasingDrama.clear()
|
||||
this.newLook()
|
||||
this.myVideo()
|
||||
this.myQianInfo()
|
||||
uni.stopPullDownRefresh()
|
||||
},
|
||||
methods: {
|
||||
// 跳转资源详情
|
||||
goCourse(e, courseDetailsId) {
|
||||
|
|
@ -154,30 +163,39 @@
|
|||
let data = {
|
||||
userId: uni.getStorageSync('userId')
|
||||
}
|
||||
this.$Request.getT('/app/integral/selectIntegralDay', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.data.nowIntegral) { //判断今天是否签到
|
||||
this.day = res.data.nowIntegral.day
|
||||
this.isQd = true
|
||||
}
|
||||
if (res.data.yesterdayIntegral) { //判断昨天是否签到
|
||||
if (!this.day) {
|
||||
this.day = res.data.yesterdayIntegral.day
|
||||
}
|
||||
this.isErQd = true
|
||||
}
|
||||
if (res.data.nowIntegral == null && res.data.yesterdayIntegral == null) {
|
||||
this.day = 0
|
||||
this.isQd = false
|
||||
this.isErQd = false
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
})
|
||||
if(!isEmpty($cache_chasingDrama.day)&&!isEmpty($cache_chasingDrama.isQd)&&!isEmpty($cache_chasingDrama.isErQd)){
|
||||
this.day=$cache_chasingDrama.day
|
||||
this.isQd=$cache_chasingDrama.isQd
|
||||
this.isErQd=$cache_chasingDrama.isErQd
|
||||
return
|
||||
}
|
||||
// this.$Request.getT('/app/integral/selectIntegralDay', data).then(res => {
|
||||
// if (res.code == 0) {
|
||||
// if (res.data.nowIntegral) { //判断今天是否签到
|
||||
// this.day = res.data.nowIntegral.day
|
||||
// this.isQd = true
|
||||
// }
|
||||
// if (res.data.yesterdayIntegral) { //判断昨天是否签到
|
||||
// if (!this.day) {
|
||||
// this.day = res.data.yesterdayIntegral.day
|
||||
// }
|
||||
// this.isErQd = true
|
||||
// }
|
||||
// if (res.data.nowIntegral == null && res.data.yesterdayIntegral == null) {
|
||||
// this.day = 0
|
||||
// this.isQd = false
|
||||
// this.isErQd = false
|
||||
// }
|
||||
// $cache_chasingDrama.set('day',this.day)
|
||||
// $cache_chasingDrama.set('isQd',this.isQd)
|
||||
// $cache_chasingDrama.set('isErQd',this.isErQd)
|
||||
// } else {
|
||||
// uni.showToast({
|
||||
// title: res.msg,
|
||||
// icon: 'none'
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
},
|
||||
//跳转
|
||||
goNav(url) {
|
||||
|
|
@ -195,12 +213,17 @@
|
|||
myVideo() {
|
||||
let data = {
|
||||
page: 1,
|
||||
limit: 2,
|
||||
limit: 6,
|
||||
classify: 1, //1收藏 2点赞 3历史记录
|
||||
}
|
||||
if($cache_chasingDrama.zhuiju){
|
||||
this.zhuiju = $cache_chasingDrama.zhuiju
|
||||
return
|
||||
}
|
||||
this.$Request.getT('/app/courseCollect/selectByUserId', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.zhuiju = res.data.records
|
||||
$cache_chasingDrama.set('zhuiju',this.zhuiju)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
|
@ -208,15 +231,20 @@
|
|||
newLook() {
|
||||
let data = {
|
||||
page: 1,
|
||||
limit: 2,
|
||||
limit: 6,
|
||||
classify: 3, //1收藏 2点赞 3历史记录
|
||||
}
|
||||
if($cache_chasingDrama.list){
|
||||
this.list=$cache_chasingDrama.list
|
||||
return
|
||||
}
|
||||
this.$Request.getT('/app/courseCollect/selectByUserId', data).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.list = res.data.records
|
||||
this.$nextTick(() => {
|
||||
this.videPage = 1
|
||||
})
|
||||
$cache_chasingDrama.set('list',this.list)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
|
@ -321,24 +349,32 @@
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
.zuijin-box.justify-between{
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.zuijin {
|
||||
width: 100%;
|
||||
margin-top: 26rpx;
|
||||
|
||||
.zuijin-box {
|
||||
width: 686rpx;
|
||||
width: 700rpx;
|
||||
height: 100%;
|
||||
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.zuijin-box-item {
|
||||
width: calc((686rpx - 20rpx) / 2);
|
||||
width: calc((700rpx - 40rpx) / 3);
|
||||
height: 100%;
|
||||
margin-bottom: 30rpx;
|
||||
margin-right: calc(40rpx / 2);
|
||||
}
|
||||
.zuijin-box-item:nth-of-type(3n){
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.zuijin-box-item-img {
|
||||
width: 100%;
|
||||
// height: 204rpx;
|
||||
height: 204rpx;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
position: relative;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
<template>
|
||||
<view class="u-relative bg-gray fixed position-all">
|
||||
<view class="time btn" v-if="time<=0" @click="enter"><text>进入</text></view>
|
||||
<view class="time" v-else ><text>{{time}}</text></view>
|
||||
<view class="w-full box">
|
||||
<image src="/static/images/share_bg2.png" class="img"></image>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
time:3
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.init()
|
||||
},
|
||||
methods: {
|
||||
enter(){
|
||||
uni.reLaunch({
|
||||
url:'/pages/index/index'
|
||||
})
|
||||
},
|
||||
init(){
|
||||
this.timer=setInterval(()=>{
|
||||
this.time--
|
||||
if(this.time<=0){
|
||||
clearInterval(this.timer)
|
||||
}
|
||||
},1000)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.position-all{
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
.time{
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
font-size: 14px;
|
||||
color: #555;
|
||||
align-items: center;
|
||||
right: 30rpx;
|
||||
border-radius: 50%;
|
||||
background-color: rgba(255, 255, 255, .5);
|
||||
border: 1px solid rgba(255, 255, 255, .8);
|
||||
top: calc(var(--status-bar-height) + 20rpx );
|
||||
}
|
||||
.btn{
|
||||
border-radius: 100rpx;
|
||||
white-space: nowrap;
|
||||
width: auto;
|
||||
height: auto;
|
||||
padding: 4rpx 20rpx;
|
||||
}
|
||||
.box{
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
.img{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
}
|
||||
},
|
||||
onShow() {
|
||||
this.page=1;
|
||||
this.enable = true
|
||||
this.getCourseList()
|
||||
},
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@
|
|||
<u-popup v-model="showjl" :closeable="true" close-icon-color="#ffffff" mode="center">
|
||||
<view class="zl" @click="goZl()">
|
||||
<image class="zl-bg"
|
||||
src="https://duanju.xianmxkj.com/file/uploadPath/2023/12/14/adf37beca97826d44970d20118f88e29.png"
|
||||
src="https://dj-api.hnsiyao.cn/file/uploadPath/2023/12/14/adf37beca97826d44970d20118f88e29.png"
|
||||
mode=""></image>
|
||||
<view class="zl-title">
|
||||
会员免费领
|
||||
|
|
@ -136,10 +136,10 @@
|
|||
<u-popup v-model="xxPopu" :closeable="false" close-icon-color="#ffffff" mode="center">
|
||||
<view class="zl" style="height: 580rpx;" @click="saveNewUser()">
|
||||
<image class="zl-bgs"
|
||||
src="https://duanju.xianmxkj.com/file/uploadPath/2024/02/22/cee2fcdc4c4ebe31ab4ce2c3c3a3d183.png"
|
||||
src="https://dj-api.hnsiyao.cn/file/uploadPath/2024/02/22/cee2fcdc4c4ebe31ab4ce2c3c3a3d183.png"
|
||||
mode=""></image>
|
||||
<view class="zl-titles">
|
||||
{{xxJDNum}} <text>金豆</text>
|
||||
{{xxJDNum}} <text>金币</text>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
|
|
@ -382,7 +382,7 @@
|
|||
this.$Request.postT('/app/user/getNewUserRed').then(res => {
|
||||
if (res.code == 0) {
|
||||
this.xxPopu = false;
|
||||
this.$queue.showToast('领取成功,金豆已到账!');
|
||||
this.$queue.showToast('领取成功,金币已到账!');
|
||||
} else {
|
||||
this.$queue.showToast(res.msg)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,20 +4,20 @@
|
|||
<view class="head">
|
||||
<scroll-view scroll-x class="bg nav bg-white u-border-bottom">
|
||||
<view class="flex text-center">
|
||||
<view class="cu-item flex-sub text-bold" :class="item.name==TabCur?' cur ':'text-black'"
|
||||
<view class="cu-item flex-sub text-bold" :class="item.name===TabCur?' cur ':'text-black'"
|
||||
v-for="(item,index) in tabList" :key="index" :data-id="item.name" @tap="tabSelect">
|
||||
{{item.name}}
|
||||
<view v-if="item.name==TabCur"
|
||||
<view v-if="item.name===TabCur"
|
||||
style="width: 64rpx;height: 8rpx;;background: #5074FF;margin: -20rpx auto;border-radius: 10rpx;">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="headlen">
|
||||
<view v-if="TabCur == tabList[0].name">
|
||||
<view class="headLen">
|
||||
<view v-if="TabCur === tabList[0].name">
|
||||
<view class="page-box" v-if="latelyCourseList.length && userId">
|
||||
<view class="order" v-for="(item, index) in latelyCourseList" :key="index"
|
||||
<view class="orderView" v-for="(item, index) in latelyCourseList" :key="index"
|
||||
@click="goCourseDet(item)">
|
||||
<view class="item">
|
||||
<view class="left">
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
</view>
|
||||
<view v-if="TabCur == tabList[2].name">
|
||||
<view class="page-box" v-if="collectList.length && userId">
|
||||
<view class="order" v-for="(item,index) in collectList" :key='index' @click="goCourseDet(item)">
|
||||
<view class="orderView" v-for="(item,index) in collectList" :key='index' @click="goCourseDet(item)">
|
||||
<view class="item">
|
||||
<view class="left">
|
||||
<image :src="item.titleImg" mode="aspectFill"
|
||||
|
|
@ -444,7 +444,7 @@
|
|||
z-index: 999;
|
||||
}
|
||||
|
||||
.headlen {
|
||||
.headLen {
|
||||
/* #ifdef H5 */
|
||||
margin-top: 80rpx;
|
||||
/* #endif */
|
||||
|
|
@ -457,7 +457,7 @@
|
|||
padding-bottom: 100px;
|
||||
}
|
||||
|
||||
.order {
|
||||
.orderView {
|
||||
width: 700rpx;
|
||||
background-color: #ffffff;
|
||||
margin: 20rpx auto;
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
<template>
|
||||
<view
|
||||
style="background-image: url(https://renwu.xiansqx.com/img/20210809/71fcac577b1945a7aeb724c8bd12a171.png);background-size: 100%;">
|
||||
<view style="text-align: center;">
|
||||
<image
|
||||
style="width: 160upx;height: 160upx;margin-top: 200upx;border-radius:20upx;border: 2px solid #FFFFFF;"
|
||||
src="../../static/images/logo.png"></image>
|
||||
<view style="font-size: 46upx;margin-top: 20upx;color: #FFFFFF;font-weight: 500;">短剧APP</view>
|
||||
<view style="font-size: 28upx;margin-top: 8upx;color: #FFFFFF;font-weight: 300;">{{message}}</view>
|
||||
<button class="confirm-btn" @click="taobaoLogin">下载短剧APP</button>
|
||||
<view style="margin-top: 300upx;text-align: center"><text
|
||||
style="color: #666666;font-size: 32upx;font-weight: 400;"></text></view>
|
||||
<view style="color: #333333;margin-top: 20upx;font-weight: 600;font-size: 38upx;"></view>
|
||||
<view style="margin-top: 40upx;background: #FF0223;height: 10upx;width: 60upx;margin-left: 46%;"></view>
|
||||
<view class="containersView">
|
||||
<div style="width: 100%;height: 85%;position: absolute;background: url('../../static/images/appeq_bg.png') no-repeat center bottom / cover;"></div>
|
||||
|
||||
<view style="text-align: center;position: relative;height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;">
|
||||
<image style="width: 124rpx;height: 124rpx;margin-top: -920rpx;border-radius:20upx;" src="../../static/images/appLogo.png"></image>
|
||||
<view style="font-size: 40rpx;margin-top: 22rpx;color: #FFFFFF;font-weight: bold;">斯耀短剧APP</view>
|
||||
<view style="font-size: 28rpx;margin-top: 16rpx;color: #FFFFFF;font-weight: bold;">海量电子榨菜 免费又过瘾</view>
|
||||
<button class="confirm-btn" @click="taobaoLogin">{{confirmBtn}}</button>
|
||||
|
||||
</view>
|
||||
<view id="shareit" v-if="show_share" @tap="closeShare">
|
||||
<image class="arrow" src="https://renwu.xiansqx.com/img/20210813/9aa484db4c60458f86deb2a8ab6fe400.png">
|
||||
</image>
|
||||
<view id="follow">点击右上角按钮,选择浏览器打开下载!</view>
|
||||
</view>
|
||||
<!-- #ifdef H5 -->
|
||||
<div v-if="isWeixin" style="width: 100%;height: 100%;position: absolute;top: 0;background: url('../../static/images/open_guide.png') no-repeat center bottom / cover;"></div>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
|
|
@ -32,27 +31,33 @@
|
|||
openShares: false,
|
||||
relationId: '',
|
||||
sending: false,
|
||||
confirmBtn: '斯耀短剧APP',
|
||||
isWeixin: false,
|
||||
};
|
||||
},
|
||||
onLoad(e) {
|
||||
|
||||
|
||||
let u = navigator.userAgent;
|
||||
if ( u.indexOf('iPhone') > -1) {
|
||||
// #ifdef H5
|
||||
this.confirmBtn = "跳转网页版首页"
|
||||
// #endif
|
||||
}
|
||||
|
||||
if ( u.toLowerCase().indexOf('micromessenger') !== -1) {
|
||||
this.isWeixin = true
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
closeShare() {
|
||||
this.show_share = false;
|
||||
},
|
||||
taobaoLogin() {
|
||||
uni.setClipboardData({
|
||||
data: this.relationId,
|
||||
success: r => {
|
||||
// this.$queue.showToast('邀请码复制成功');
|
||||
}
|
||||
});
|
||||
|
||||
var u = navigator.userAgent;
|
||||
if (u.indexOf('Android') > -1 || u.indexOf('Adr') > -1) {
|
||||
this.$Request.get('/app/common/type/49').then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
if (res.data && res.data.value) {
|
||||
if (this.openShare) {
|
||||
let ua = navigator.userAgent.toLowerCase();
|
||||
|
|
@ -69,6 +74,7 @@
|
|||
} else {
|
||||
this.show_share = true;
|
||||
}
|
||||
|
||||
} else {
|
||||
// #ifndef H5
|
||||
plus.runtime.openURL(res.data.value, function(res) {
|
||||
|
|
@ -76,6 +82,12 @@
|
|||
});
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
uni.setClipboardData({
|
||||
data: res.data.value,
|
||||
success: r => {
|
||||
// this.$queue.showToast('邀请码复制成功');
|
||||
}
|
||||
});
|
||||
window.location.href = res.data.value;
|
||||
// #endif
|
||||
}
|
||||
|
|
@ -83,8 +95,9 @@
|
|||
}
|
||||
});
|
||||
} else {
|
||||
|
||||
this.$Request.get('/app/common/type/50').then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.code === 0) {
|
||||
if (res.data && res.data.value) {
|
||||
if (this.openShares) {
|
||||
let ua = navigator.userAgent.toLowerCase();
|
||||
|
|
@ -97,6 +110,9 @@
|
|||
// #endif
|
||||
// #ifdef H5
|
||||
window.location.href = res.data.value;
|
||||
// uni.switchTab({
|
||||
// url: 'pages/index/index'
|
||||
// })
|
||||
// #endif
|
||||
} else {
|
||||
this.show_share = true;
|
||||
|
|
@ -108,7 +124,17 @@
|
|||
});
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
window.location.href = res.data.value;
|
||||
uni.setClipboardData({
|
||||
data: res.data.value,
|
||||
success: r => {
|
||||
// this.$queue.showToast('邀请码复制成功');
|
||||
}
|
||||
});
|
||||
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
// window.location.href = res.data.value;
|
||||
// #endif
|
||||
}
|
||||
}
|
||||
|
|
@ -120,7 +146,15 @@
|
|||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
uni-page-body{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.containersView {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
#shareit {
|
||||
-webkit-user-select: none;
|
||||
position: fixed;
|
||||
|
|
@ -252,16 +286,18 @@
|
|||
}
|
||||
|
||||
.confirm-btn {
|
||||
width: 500upx;
|
||||
height: 100upx;
|
||||
line-height: 100upx;
|
||||
margin-top: 200upx;
|
||||
color: #FE0122;
|
||||
font-size: 38upx;
|
||||
font-weight: 500;
|
||||
|
||||
// &:after {
|
||||
// border-radius: 60px;
|
||||
// }
|
||||
width: 416rpx;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background: #FD5775;
|
||||
color: #fff;
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #FFFFFF;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 70rpx;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<view class="container1">
|
||||
<view class="containerView">
|
||||
<view class="cu-form-group"
|
||||
style="margin: 30upx;border: 2upx solid whitesmoke;margin-bottom: 20px;border-radius: 30px">
|
||||
<view class="title">手机号</view>
|
||||
|
|
@ -11,11 +11,10 @@
|
|||
<text class="title">验证码</text>
|
||||
<input type="number" :value="code" placeholder="请输入验证码" maxlength="6" data-key="code" @input="inputChange"
|
||||
@confirm="toLogin" />
|
||||
<button class="send-msg" @click="sendMsg" :disabled="sending">{{ sendTime }}</button>
|
||||
<button class="send-msg" @click="sendMsg" :disabled="sendIng">{{ sendTime }}</button>
|
||||
</view>
|
||||
|
||||
<button class="confirm-btn" @click="toLogin" :disabled="logining">立即绑定</button>
|
||||
</view>
|
||||
<button class="confirm-btn" @click="toLogin" :disabled="loginIng">立即绑定</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
|
@ -29,8 +28,8 @@
|
|||
return {
|
||||
mobile: '',
|
||||
code: '',
|
||||
logining: false,
|
||||
sending: false,
|
||||
loginIng: false,
|
||||
sendIng: false,
|
||||
sendTime: '获取验证码',
|
||||
count: 60,
|
||||
type: '',
|
||||
|
|
@ -55,11 +54,11 @@
|
|||
} = this;
|
||||
if (count === 1) {
|
||||
this.count = 60;
|
||||
this.sending = false;
|
||||
this.sendIng = false;
|
||||
this.sendTime = '获取验证码'
|
||||
} else {
|
||||
this.count = count - 1;
|
||||
this.sending = true;
|
||||
this.sendIng = true;
|
||||
this.sendTime = count - 1 + '秒后重新获取';
|
||||
setTimeout(this.countDown.bind(this), 1000);
|
||||
}
|
||||
|
|
@ -76,7 +75,7 @@
|
|||
this.$queue.showLoading("正在发送验证码...");
|
||||
this.$Request.getT('/app/Login/sendMsg/' + mobile + '/gzg').then(res => {
|
||||
if (res.code === 0) {
|
||||
this.sending = true;
|
||||
this.sendIng = true;
|
||||
this.$queue.showToast('验证码发送成功请注意查收');
|
||||
this.countDown();
|
||||
uni.hideLoading();
|
||||
|
|
@ -162,7 +161,7 @@
|
|||
background: #557EFD;
|
||||
}
|
||||
|
||||
.container1 {
|
||||
.containerView {
|
||||
top: 0;
|
||||
padding-top: 32upx;
|
||||
position: relative;
|
||||
|
|
|
|||