Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
U
uniapp_vedio
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
android
uniapp_vedio
Commits
7ace1b3d
Commit
7ace1b3d
authored
Oct 21, 2024
by
mengcuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
保留审核页面
parent
d93855f0
Changes
11
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
13 additions
and
1713 deletions
+13
-1713
pages.json
vedio/pages.json
+1
-73
home.vue
vedio/pages/home.vue
+7
-116
loading.vue
vedio/pages/loading.vue
+5
-122
cdkey.vue
vedio/pagesA/cdkey/cdkey.vue
+0
-104
unsign.vue
vedio/pagesA/unsign/unsign.vue
+0
-104
vipAppPay.vue
vedio/pagesA/vipAppPay/vipAppPay.vue
+0
-423
vipPay.vue
vedio/pagesA/vipPay/vipPay.vue
+0
-421
dotRecord.vue
vedio/pagesD/dotRecord/dotRecord.vue
+0
-71
payRecord.vue
vedio/pagesD/payRecord/payRecord.vue
+0
-67
readerRecord.vue
vedio/pagesD/readerRecord/readerRecord.vue
+0
-141
useDotRecord.vue
vedio/pagesD/useDotRecord/useDotRecord.vue
+0
-71
No files found.
vedio/pages.json
View file @
7ace1b3d
...
...
@@ -44,43 +44,6 @@
],
//
分包配置
"subPackages"
:
[{
"root"
:
"pagesA"
,
"pages"
:
[{
"path"
:
"vipPay/vipPay"
,
"style"
:
{
"navigationBarTitleText"
:
"会员中心"
,
"navigationStyle"
:
"default"
,
"navigationBarBackgroundColor"
:
"#ffffff"
,
"navigationBarTextStyle"
:
"black"
}
},
{
"path"
:
"cdkey/cdkey"
,
"style"
:
{
"navigationBarTitleText"
:
"兑换会员"
,
"navigationStyle"
:
"default"
,
"navigationBarBackgroundColor"
:
"#ffffff"
,
"navigationBarTextStyle"
:
"black"
}
},
{
"path"
:
"unsign/unsign"
,
"style"
:
{
"navigationBarTitleText"
:
"管理自动续费"
,
"navigationStyle"
:
"default"
,
"navigationBarBackgroundColor"
:
"#ffffff"
,
"navigationBarTextStyle"
:
"black"
}
},{
"path"
:
"vipAppPay/vipAppPay"
,
"style"
:
{
"navigationBarTitleText"
:
"会员中心"
,
"navigationStyle"
:
"default"
,
"navigationBarBackgroundColor"
:
"#ffffff"
,
"navigationBarTextStyle"
:
"black"
}
}
]
},
{
"root"
:
"page-subs/sub_A"
,
"pages"
:
[{
"path"
:
"book-search/book-search"
,
...
...
@@ -123,48 +86,13 @@
}
}]
},
{
"root"
:
"pagesD"
,
"pages"
:
[{
"path"
:
"payRecord/payRecord"
,
"style"
:
{
"navigationBarTitleText"
:
"我的订单"
,
"navigationStyle"
:
"default"
,
"navigationBarBackgroundColor"
:
"#ffffff"
,
"navigationBarTextStyle"
:
"black"
}
},
{
"path"
:
"dotRecord/dotRecord"
,
"style"
:
{
"navigationBarTitleText"
:
"书豆记录"
,
"navigationStyle"
:
"default"
,
"navigationBarBackgroundColor"
:
"#ffffff"
,
"navigationBarTextStyle"
:
"black"
}
},
{
"path"
:
"useDotRecord/useDotRecord"
,
"style"
:
{
"navigationBarTitleText"
:
"消费记录"
,
"navigationStyle"
:
"default"
,
"navigationBarBackgroundColor"
:
"#ffffff"
,
"navigationBarTextStyle"
:
"black"
}
},
{
"path"
:
"readerRecord/readerRecord"
,
"style"
:
{
"navigationBarTitleText"
:
"阅读记录"
,
"navigationStyle"
:
"default"
,
"navigationBarBackgroundColor"
:
"#ffffff"
,
"navigationBarTextStyle"
:
"black"
}
}]
}],
//
分包预载配置
"preloadRule"
:
{
//
当我们进入了pages/home页面以后就会预下载pagesA分包
"pages/home"
:
{
"network"
:
"all"
,
//在指定网络下预下载,可选值为:all(不限网络)、wifi(仅wifi下预下载)
"packages"
:
[
"page
sA"
,
"page-subs/sub_A"
,
"pagesD
"
]
//进入页面后预下载分包
"packages"
:
[
"page
-subs/sub_A
"
]
//进入页面后预下载分包
}
},
"globalStyle"
:
{
...
...
vedio/pages/home.vue
View file @
7ace1b3d
<
template
>
<view
v-if=
"localActiviteFlag==1"
class=
"body"
>
<view
style=
"height: 92%;"
>
<bookshelf
v-show=
"currentPage==0"
ref=
"shelf"
v-on:showEditBarH=
"showEditBarH"
/>
<bookcity
v-show=
"currentPage==1"
ref=
"city"
/>
<warehouse
v-show=
"currentPage==2"
ref=
"recommend"
/>
<userPage
v-show=
"currentPage==3"
ref=
"user"
/>
</view>
<view
class=
"tabs-bar"
:style=
"'z-index: 99;height: 8%;padding-bottom:' + bottomSafeHeight + 'px'"
>
<view
:class=
"currentPage==0?'tab active': 'tab'"
@
click=
"tabChange(0)"
>
<view
class=
"tab-home"
>
<image
v-if=
"currentPage==0"
class=
"tabs-image"
src=
"/static/tab/bookshelf_s.png"
mode=
"heightFix"
>
</image>
<image
v-else
class=
"tabs-image"
src=
"/static/tab/bookshelf.png"
mode=
"heightFix"
></image>
</view>
书架
</view>
<view
:class=
"currentPage == 1?'tab active': 'tab'"
@
click=
"tabChange(1)"
>
<view
class=
"tab-home"
>
<image
v-if=
"currentPage==1"
class=
"tabs-image"
src=
"/static/tab/bookcity_s.png"
mode=
"heightFix"
>
</image>
<image
v-else
class=
"tabs-image"
src=
"/static/tab/bookcity.png"
mode=
"heightFix"
></image>
</view>
书城
</view>
<view
:class=
"currentPage == 2?'tab active': 'tab'"
@
click=
"tabChange(2)"
>
<view
class=
"tab-home"
>
<image
v-if=
"currentPage==2"
class=
"tabs-image"
src=
"/static/tab/bookstore_s.png"
mode=
"heightFix"
>
</image>
<image
v-else
class=
"tabs-image"
src=
"/static/tab/bookstore.png"
mode=
"heightFix"
></image>
</view>
书库
</view>
<view
:class=
"currentPage == 3?'tab active': 'tab'"
@
click=
"tabChange(3)"
>
<view
class=
"tab-home"
>
<image
v-if=
"currentPage==3"
class=
"tabs-image"
src=
"/static/tab/my_s.png"
mode=
"heightFix"
>
</image>
<image
v-else
class=
"tabs-image"
src=
"/static/tab/my.png"
mode=
"heightFix"
></image>
</view>
我的
</view>
</view>
<view
v-if=
"showEditBar"
class=
"editBar"
:style=
"'padding-bottom:' + bottomSafeHeight + 'px;'"
>
<view
class=
"editItem"
@
click=
"!isFullChoice?fullChoice():noChoice()"
>
{{
!
isFullChoice
?
'全选'
:
'全不选'
}}
</view>
<view
class=
"editItem"
@
click=
"deleteCollect"
>
删除
</view>
</view>
</view>
<view
v-else
class=
"body"
>
<view
class=
"body"
>
<view
:style=
"'display: flex;flex-direction: row;align-items: center;margin: 20rpx;padding-left: 10rpx;margin-top:'+10+'px;'"
>
<image
class=
"avatar"
src=
"@/static/images/logo.png"
></image>
...
...
@@ -76,19 +24,14 @@
import
common
from
'@/mixins/common'
;
const
app
=
getApp
();
import
bookshelf
from
"@/components/bookshelf/bookshelf.vue"
;
import
bookcity
from
"@/components/bookcity/bookcity.vue"
;
import
warehouse
from
"@/components/warehouse/warehouse.vue"
;
import
userPage
from
"@/components/home/my.vue"
;
export
default
{
name
:
'home'
,
mixins
:
[
common
],
components
:
{
bookshelf
,
bookcity
,
warehouse
,
userPage
warehouse
},
data
()
{
return
{
...
...
@@ -108,72 +51,20 @@
}
},
onShow
()
{
try
{
if
(
this
.
currentPage
==
0
)
{
this
.
$refs
.
shelf
.
show
();
}
else
if
(
this
.
currentPage
==
3
)
{
this
.
$refs
.
user
.
show
();
}
}
catch
(
e
)
{
}
let
that
=
this
uni
.
$on
(
'refreshPreviousPage'
,
(
data
)
=>
{
if
(
data
.
vipFlag
==
'1'
)
{
// 开通vip刷新状态
if
(
that
.
currentPage
==
3
)
{
that
.
$refs
.
user
.
show
();
}
}
});
},
mounted
()
{
// 渲染完成 初始化首页数据
this
.
loadComponentData
();
let
that
=
this
if
(
this
.
localActiviteFlag
==
1
)
{
uni
.
$on
(
'goWareHouse'
,
function
(
data
)
{
that
.
tabChange
(
1
)
})
}
},
methods
:
{
tabChange
(
index
)
{
if
(
this
.
currentPage
==
index
)
return
this
.
currentPage
=
index
;
this
.
loadComponentData
();
},
loadComponentData
()
{
if
(
this
.
localActiviteFlag
==
1
)
{
if
(
this
.
currentPage
==
0
)
{
this
.
$refs
.
shelf
.
show
();
}
else
if
(
this
.
currentPage
==
1
)
{
this
.
$refs
.
city
.
show
();
}
else
if
(
this
.
currentPage
==
2
)
{
this
.
$refs
.
recommend
.
show
();
}
else
if
(
this
.
currentPage
==
3
)
{
this
.
$refs
.
user
.
show
();
}
}
else
{
this
.
$refs
.
recommend2
.
show
();
}
},
showEditBarH
(
b
)
{
this
.
showEditBar
=
b
this
.
isFullChoice
=
false
},
fullChoice
()
{
this
.
isFullChoice
=
!
this
.
isFullChoice
this
.
$refs
.
shelf
.
fullChoice
()
},
noChoice
()
{
this
.
isFullChoice
=
!
this
.
isFullChoice
this
.
$refs
.
shelf
.
noChoice
()
},
deleteCollect
()
{
this
.
$refs
.
shelf
.
deleteCollect
()
}
}
}
...
...
vedio/pages/loading.vue
View file @
7ace1b3d
<
template
>
<view
v-if=
"sourceType!='android'"
class=
"body"
>
<view
class=
"body"
>
<image
style=
"width: 170rpx;height: 170rpx;margin-top: 30%;"
src=
"../static/images/logo.png"
mode=
"widthFix"
/>
<view
style=
"color: black;margin-top: 30rpx;font-size: 40rpx;font-size: 50rpx;"
>
{{
appName
}}
</view>
<view
style=
"color: #FECF02;margin-top: 10rpx;font-size: 40rpx;font-size: 40rpx;"
>
欢迎使用
</view>
...
...
@@ -15,25 +15,6 @@
</view>
</uni-popup>
</view>
<view
v-else
class=
"show-mask flex-v"
@
click=
"getVipParams"
>
<image
style=
"width: 100%;margin-top: 200rpx;margin-bottom: 150rpx;z-index: 2;"
mode=
"widthFix"
src=
"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_book_redpkg.png"
>
</image>
<image
v-if=
"!isVip"
class=
"heart"
src=
"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_book_vedio_next.png"
mode=
"widthFix"
>
</image>
<button
v-else
open-type=
"launchApp"
app-parameter=
"wechat"
@
click
.
stop=
""
class=
"heart-btn"
>
<image
src=
"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_book_vedio_toapp.png"
mode=
"widthFix"
>
</image>
</button>
<image
class=
"mask-bg"
mode=
"scaleToFill"
src=
"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_book_main.png"
>
</image>
<view
class=
"mask-bottom-bg"
>
</view>
</view>
</
template
>
<
script
>
...
...
@@ -71,23 +52,8 @@
},
onShow
(
options
)
{
this
.
ttLoging
()
this
.
isVipStatus
()
},
methods
:
{
isVipStatus
()
{
if
(
this
.
sourceType
==
'android'
&&
this
.
localToken
)
{
let
that
=
this
;
this
.
post
({
url
:
'/vip/getVipProducts/cyc/forVApp'
,
showLoading
:
false
,
success
:
({
data
})
=>
{
that
.
isVip
=
data
.
vip
}
});
}
},
ttLoging
()
{
var
that
=
this
;
var
obj
=
wx
.
getLaunchOptionsSync
()
...
...
@@ -135,98 +101,15 @@
// 'A5CFAE67AF32E71D10CA6127546E82C20A8DE7C0EAAA5697BEEC2AC2E333F9945F433703067DF5142735505C42F58997'
// )
// that.handlePay()
if
(
data
.
activiteFlag
==
101
)
{
that
.
handlePay
()
}
else
{
setTimeout
(()
=>
{
redirectTo
(
'home?activiteFlag='
+
data
.
activiteFlag
+
"&idcode="
+
data
.
idcode
);
},
1000
);
}
}
});
},
fail
:
function
(
err
)
{}
});
},
handlePay
()
{
let
that
=
this
;
this
.
post
({
url
:
'/vip/getVipProducts/cyc/forVApp'
,
showLoading
:
false
,
success
:
({
data
})
=>
{
that
.
vipList
=
data
.
list
;
}
});
},
getVipParams
()
{
if
(
this
.
isVip
)
{
return
}
let
that
=
this
;
if
(
that
.
vipList
!=
null
&&
that
.
vipList
.
length
>
0
)
{
let
vipBean
=
that
.
vipList
[
0
];
that
.
post
({
url
:
'/vip/getVipPayParams/wechatForVApp'
,
data
:
{
pid
:
vipBean
.
pid
,
payChannel
:
'WEIXIN'
},
showLoading
:
true
,
success
:
({
data
})
=>
{
if
(
vipBean
.
firstPayPrice
==
0
)
{
//签约
that
.
wxSign
(
data
,
vipBean
.
largeType
);
}
else
{
//普通支付
that
.
wxPay
(
data
,
vipBean
.
largeType
);
}
}
});
}
else
{
message
.
notify
(
'网络加载中,请稍后'
)
}
},
wxSign
(
wxData
,
largeType
)
{
let
that
=
this
;
// 发起微信签约
wx
.
navigateToMiniProgram
({
appId
:
"wxbd687630cd02ce1d"
,
path
:
'pages/index/index'
,
extraData
:
wxData
.
params
,
success
(
res
)
{
// setTimeout(() => {
// that.isVipStatus()
// }, 1000);
},
fail
(
res
)
{
// 未成功跳转到签约小程序
// console.log("wxSign fail=", res);
}
})
},
wxPay
(
wxData
)
{
let
wxParams
=
wxData
.
params
;
let
that
=
this
;
// 发起微信支付
wx
.
requestPayment
({
timeStamp
:
wxParams
.
timeStamp
,
nonceStr
:
wxParams
.
nonceStr
,
package
:
wxParams
.
packageStr
,
signType
:
wxParams
.
signType
,
paySign
:
wxParams
.
paySign
,
success
(
res
)
{},
fail
(
res
)
{
// message.notify('取消支付')
}
})
}
}
};
...
...
vedio/pagesA/cdkey/cdkey.vue
deleted
100644 → 0
View file @
d93855f0
<
template
>
<view
class=
"body"
>
<view
class=
"search-head"
>
<view
class=
"search-bar"
>
<input
class=
"inputkeyword"
type=
"text"
placeholder=
"请输入兑换码"
@
input=
"showChangePrompt"
:value=
"keyword"
/>
<image
v-if=
"keyword!=''"
@
click=
"clearWord"
style=
"width: 36rpx; height: 36rpx"
src=
"@/static/video/close.png"
></image>
</view>
<text
class=
"searchbutton"
@
click=
"addByCDK"
>
去兑换
</text>
</view>
</view>
</
template
>
<
script
>
import
common
from
'@/mixins/common'
;
import
{
navigateBack
,
message
,
alert
,
}
from
'@/utils/fun.js'
;
const
app
=
getApp
();
export
default
{
name
:
'cdkey'
,
mixins
:
[
common
],
data
()
{
return
{
keyword
:
''
,
};
},
methods
:
{
showChangePrompt
(
e
)
{
this
.
keyword
=
e
.
detail
.
value
},
addByCDK
()
{
if
(
this
.
keyword
==
''
)
{
message
.
notify
(
'请输入兑换码'
)
return
}
this
.
post
({
url
:
'/vip/addByCDK'
,
showLoading
:
false
,
data
:
{
cdk
:
this
.
keyword
},
success
:
({
data
})
=>
{
message
.
notify
(
'恭喜您,成功兑换会员!'
)
setTimeout
(()
=>
{
navigateBack
()
},
1000
)
}
});
}
}
};
</
script
>
<
style
lang=
"scss"
>
@import
'@/scss/uni.scss'
;
.body
{
background-color
:
whitesmoke
;
}
.search-head
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-between
;
align-items
:
center
;
height
:
8%
;
}
.search-bar
{
border-radius
:
60rpx
;
margin
:
10rpx
15rpx
;
padding
:
15rpx
30rpx
;
width
:
80%
;
background-color
:
white
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
space-between
}
.inputkeyword
{
flex
:
1
;
margin-left
:
30rpx
;
}
.searchbutton
{
text-align
:
center
;
color
:
#000000
;
font-size
:
30rpx
;
width
:
20%
;
margin-right
:
10rpx
;
}
</
style
>
\ No newline at end of file
vedio/pagesA/unsign/unsign.vue
deleted
100644 → 0
View file @
d93855f0
<
template
>
<view
class=
"body"
>
<text
style=
"margin-left: 40rpx;margin-top: 50rpx;font-size: 36rpx;"
>
续费管理
</text>
<view
class=
"unsign-head"
>
<view
style=
"position: absolute;z-index: 10;width: 100%;padding-top: 30rpx;"
>
<text
style=
"margin-left: 50rpx;font-size: 30rpx;"
>
{{
agreementData
.
topText
}}
</text>
<view
class=
"section"
>
<view>
下次扣款日期
</view>
<view>
{{
agreementData
.
nextDay
}}
</view>
</view>
<view
class=
"section"
>
<view>
下次扣款金额
</view>
<view>
{{
agreementData
.
balance
}}
</view>
</view>
<view
class=
"section"
>
<view>
支付方式
</view>
<view>
微信
</view>
</view>
<text
class=
"unsignbutton"
@
click=
"unsign"
>
取消自动续费
</text>
</view>
<image
:src=
"bgImg"
mode=
"widthFix"
style=
"position: absolute;width: 100%;"
></image>
</view>
</view>
</
template
>
<
script
>
import
common
from
'@/mixins/common'
;
import
{
navigateBack
,
message
,
alert
,
}
from
'@/utils/fun.js'
;
const
app
=
getApp
();
export
default
{
name
:
'unsign'
,
mixins
:
[
common
],
data
()
{
return
{
agreementData
:
{},
bgImg
:
'https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_sign.png'
};
},
onLoad
(
options
)
{
this
.
agreementData
=
JSON
.
parse
(
decodeURIComponent
(
options
.
params
));
},
methods
:
{
unsign
()
{
this
.
post
({
url
:
'/vip/unSign'
,
showLoading
:
false
,
success
:
({
data
})
=>
{
message
.
notify
(
'已取消自动签约'
)
setTimeout
(()
=>
{
navigateBack
()
},
1000
)
}
});
}
}
};
</
script
>
<
style
lang=
"scss"
>
@import
'@/scss/uni.scss'
;
.body
{
background-color
:
whitesmoke
;
color
:
#74380C
;
}
.unsign-head
{
margin-left
:
3%
;
margin-top
:
5%
;
width
:
94%
;
position
:
relative
;
.section
{
margin
:
30rpx
50rpx
;
display
:
flex
;
justify-content
:
space-between
;
}
.unsignbutton
{
border
:
1rpx
solid
#E6985D
;
padding
:
6rpx
20rpx
;
border-radius
:
3rpx
;
text-align
:
center
;
color
:
#763904
;
font-size
:
26rpx
;
position
:
absolute
;
right
:
50rpx
;
}
}
</
style
>
\ No newline at end of file
vedio/pagesA/vipAppPay/vipAppPay.vue
deleted
100644 → 0
View file @
d93855f0
This diff is collapsed.
Click to expand it.
vedio/pagesA/vipPay/vipPay.vue
deleted
100644 → 0
View file @
d93855f0
<
template
>
<view
class=
"body"
>
<image
style=
"width: 100%;"
src=
"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_heli_vip.png"
mode=
"widthFix"
/>
<view
class=
"section"
>
<view
@
click=
"handleUnsign"
v-if=
"agreementDto"
style=
"margin-top: 12rpx;margin-left: 30rpx;color: black;font-size: 36rpx;font-weight: 700;"
>
自动续费管理 >
</view>
<view
class=
"pack-box"
>
<scroll-view
scroll-x
style=
"white-space: nowrap"
>
<view
class=
"pack-item"
v-for=
'(item, index) in vipList'
:key=
'index'
@
click=
"choosePack(item, index)"
>
<view
class=
"pack-content"
:class=
"[
{active: index==selectedIndex}]">
<view
class=
"label"
v-if=
"item.topTitle"
>
{{
item
.
topTitle
}}
</view>
<view
class=
"name row"
:class=
"[
{active2: index==selectedIndex}]">
{{
item
.
title
}}
</view>
<view
class=
"price row"
:class=
"[
{active1: index==selectedIndex},{price2:item.firstPayPrice
<
=
0
}]"
>
<view
style=
"font-size: 50rpx;"
>
{{
item
.
firstPayPrice
<=
0
?
''
:
'¥'
}}
</view>
{{
item
.
firstPayPrice
<=
0
?
'免费试用'
:
item
.
firstPayPrice
}}
</view>
<view
class=
"origin row"
v-if=
'item.oldPrice'
>
¥
{{
item
.
oldPrice
}}
</view>
<view
class=
"origin2 row"
v-if=
'item.remarks'
>
{{
getRemark1
(
item
.
remarks
)
+
'
\
r
\
n'
+
getRemark2
(
item
.
remarks
)
}}
</view>
<view
class=
"label2"
v-if=
"index==selectedIndex&&item.firstPayPrice>0"
>
{{
'仅需'
+
amount
(
item
.
firstPayPrice
/
item
.
days
)
+
'元/天'
}}
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<view
class=
"trialStyle"
>
<text
v-if=
"hintText"
>
{{
hintText
}}
</text>
</view>
<view
class=
"agreementWrp"
>
<checkbox-group
@
change=
"checkboxChange"
style=
"width: 50rpx;margin-right: 10rpx;"
>
<checkbox
:checked=
"checked"
style=
"transform:scale(0.9)"
>
</checkbox>
</checkbox-group>
<text>
您已阅读并同意
<text
class=
"agreementText"
@
click=
"goAgreement(1)"
>
《连续订阅服务协议》
</text>
与
<text
class=
"agreementText"
@
click=
"goAgreement(2)"
>
《支付协议》
</text>
与
<text
class=
"agreementText"
@
click=
"goAgreement(3)"
>
《隐私政策》
</text>
</text>
</view>
<view
class=
"section"
>
<button
class=
"apply-button"
@
click=
"handlePay"
>
立即试用
</button>
</view>
</view>
</
template
>
<
script
>
import
common
from
'@/mixins/common'
;
import
{
message
,
navigateBack
,
navigateTo
,
redirectTo
}
from
'@/utils/fun'
;
const
app
=
getApp
();
export
default
{
name
:
'vipPay'
,
mixins
:
[
common
],
data
()
{
return
{
vipList
:
[],
selectedIndex
:
0
,
os
:
'android'
,
checked
:
false
,
agreementDto
:
null
,
hintText
:
''
}
},
methods
:
{
loadData
()
{
if
(
wx
.
getSystemInfoSync
().
platform
===
'ios'
)
{
this
.
os
=
'ios'
;
}
this
.
post
({
url
:
'/vip/getVipProducts/cyc'
,
showLoading
:
false
,
success
:
({
data
})
=>
{
this
.
vipList
=
data
.
list
this
.
hintText
=
this
.
vipList
[
0
].
trailRemark
;
}
});
this
.
post
({
url
:
'/vip/getOrderList'
,
showLoading
:
false
,
success
:
({
data
})
=>
{
if
(
data
.
agreement
==
undefined
)
{
this
.
agreementDto
=
null
;
}
else
{
this
.
agreementDto
=
data
.
agreement
;
}
}
});
},
choosePack
(
item
,
index
)
{
this
.
selectedIndex
=
index
;
this
.
hintText
=
this
.
vipList
[
this
.
selectedIndex
].
trailRemark
;
},
handleUnsign
()
{
if
(
this
.
agreementDto
)
{
let
params
=
JSON
.
stringify
(
this
.
agreementDto
)
navigateTo
(
`/pagesA/unsign/unsign?params=`
+
params
)
}
},
amount
(
value
)
{
return
value
.
toFixed
(
2
)
},
getRemark1
(
value
)
{
let
data
=
value
.
split
(
','
)
if
(
data
.
length
>
0
)
{
return
data
[
0
]
}
return
''
},
getRemark2
(
value
)
{
let
data
=
value
.
split
(
','
)
if
(
data
.
length
>
1
)
{
return
data
[
1
]
}
return
''
},
handlePay
()
{
if
(
!
this
.
checked
)
{
message
.
notify
(
"请阅读《支付协议》后勾选同意"
)
return
}
let
that
=
this
;
let
vipBean
=
this
.
vipList
[
this
.
selectedIndex
];
if
(
this
.
os
==
'ios'
)
{
message
.
notify
(
'暂不支持ios系统~'
);
}
else
{
this
.
post
({
url
:
'/vip/getVipPayParams/wechat'
,
data
:
{
pid
:
vipBean
.
pid
,
payChannel
:
'WEIXIN'
},
showLoading
:
true
,
success
:
({
data
})
=>
{
if
(
vipBean
.
firstPayPrice
==
0
)
{
//签约
that
.
wxSign
(
data
,
vipBean
.
largeType
);
}
else
{
//普通支付
that
.
wxPay
(
data
,
vipBean
.
largeType
);
}
}
});
}
},
wxSign
(
wxData
,
largeType
)
{
let
that
=
this
;
// 发起微信签约
wx
.
navigateToMiniProgram
({
appId
:
"wxbd687630cd02ce1d"
,
path
:
'pages/index/index'
,
extraData
:
wxData
.
params
,
success
(
res
)
{
uni
.
navigateBack
()
},
fail
(
res
)
{
// 未成功跳转到签约小程序
console
.
log
(
"wxSign fail="
,
res
);
}
})
},
wxPay
(
wxData
)
{
let
wxParams
=
wxData
.
params
;
let
that
=
this
;
// 发起微信支付
wx
.
requestPayment
({
timeStamp
:
wxParams
.
timeStamp
,
nonceStr
:
wxParams
.
nonceStr
,
package
:
wxParams
.
packageStr
,
signType
:
wxParams
.
signType
,
paySign
:
wxParams
.
paySign
,
success
(
res
)
{
message
.
notify
(
'支付成功'
)
uni
.
$emit
(
'refreshPreviousPage'
,
{
vipFlag
:
'1'
});
setTimeout
(()
=>
{
uni
.
navigateBack
({
delta
:
1
,
});
},
1000
);
},
fail
(
res
)
{
message
.
notify
(
'取消支付'
)
}
})
},
checkboxChange
(
e
)
{
if
(
e
.
detail
.
value
.
length
>
0
)
{
this
.
checked
=
true
}
else
{
this
.
checked
=
false
}
},
goAgreement
(
type
)
{
if
(
type
==
1
)
{
navigateTo
(
`/pages/brower/brower?url=https://api.mints-tech.cn/camera-api/agreements/xxx/gmxy.html`
)
}
else
if
(
type
==
2
)
{
navigateTo
(
`/pages/brower/brower?url=https://api.mints-tech.cn/camera-api/agreements/xxx/syzc.html`
)
}
else
if
(
type
==
3
)
{
navigateTo
(
`/pages/brower/brower?url=https://api.mints-tech.cn/camera-api/agreements/xxx/yhxy.html`
)
}
}
}
}
</
script
>
<
style
lang=
"scss"
>
.body
{
background-color
:
white
;
display
:
flex
;
flex-direction
:
column
;
.section
{
margin-top
:
30rpx
;
display
:
flex
;
flex-direction
:
column
;
.title
{
font-size
:
32rpx
;
font-weight
:
700
;
color
:
white
;
margin-bottom
:
30rpx
;
}
.pack-box
{
margin-top
:
25rpx
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
flex-wrap
:
wrap
;
overflow-x
:
scroll
;
.pack-item
{
margin-left
:
30rpx
;
width
:
calc
(
32%
-
30rpx
);
display
:
inline-block
;
.active
{
background-color
:
#FEEDD0
;
border
:
4rpx
solid
#FDEADC
!
important
;
}
.pack-content
{
width
:
100%
;
height
:
320rpx
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
background
:
white
;
border
:
2rpx
solid
#EAECEC
;
border-radius
:
20rpx
;
position
:
relative
;
padding-top
:
60rpx
;
.row
{
display
:
flex
;
align-items
:
center
;
margin
:
6rpx
15rpx
;
marign-bottom
:
0
;
}
.row
:last-child
{
margin-bottom
:
8rpx
;
}
.name
{
font-size
:
30rpx
;
font-weight
:
700
;
color
:
#000000
;
}
.price
{
font-size
:
60rpx
;
color
:
#000000
;
font-weight
:
700
;
}
.price2
{
font-size
:
40rpx
;
}
.active1
{
color
:
#fd5350
;
}
.active2
{
color
:
#6D301D
;
}
.origin
{
font-size
:
26rpx
;
margin
:
0
;
text-align
:
center
;
color
:
#676666
;
text-decoration
:
line-through
;
}
.origin2
{
font-size
:
26rpx
;
text-align
:
center
;
color
:
#676666
;
word-wrap
:
break-word
;
word-break
:
break-all
;
white-space
:
pre-line
;
}
.label
{
margin-top
:
-4rpx
;
margin-left
:
-4rpx
;
border-radius
:
20rpx
0
20rpx
0
;
width
:
80%
;
background
:
linear-gradient
(
90deg
,
#FC4F3B
,
#FBCB7A
);
color
:
white
;
font-size
:
24rpx
;
height
:
50rpx
;
line-height
:
50rpx
;
margin-right
:
20rpx
;
text-align
:
center
;
position
:
absolute
;
top
:
0
;
left
:
0
;
}
.label2
{
margin-bottom
:
-4rpx
;
margin-left
:
-4rpx
;
margin-right
:
-4rpx
;
width
:
100%
;
border-radius
:
0
0
20rpx
20rpx
;
background-color
:
#FC4F3B
;
color
:
white
;
font-size
:
24rpx
;
height
:
50rpx
;
line-height
:
50rpx
;
text-align
:
center
;
position
:
absolute
;
bottom
:
0
;
}
}
}
.pack-item
:last-child
{
margin-right
:
30rpx
;
}
}
.apply-button
{
border-radius
:
50rpx
;
background
:
#e8c8ae
;
color
:
#8d5a29
;
width
:
550rpx
;
margin
:
40rpx
auto
;
}
}
.agreementWrp
{
display
:
flex
;
align-items
:
center
;
color
:
darkgray
;
font-size
:
26rpx
;
margin-top
:
30rpx
;
padding-left
:
30rpx
;
.agreementText
{
color
:
#387EF4
;
}
}
}
.trialStyle
{
height
:
60rpx
;
padding
:
40rpx
;
font-size
:
22rpx
;
color
:
darkgray
;
}
</
style
>
\ No newline at end of file
vedio/pagesD/dotRecord/dotRecord.vue
deleted
100644 → 0
View file @
d93855f0
<
template
>
<view
class=
"body"
>
<!--
<status-title
:showBack=
"true"
>
书豆记录
</status-title>
-->
<z-paging
class=
"flex-1"
ref=
"paging"
v-model=
"dataList"
@
query=
"queryList"
>
<view
v-for=
"(item, i) in dataList"
:key=
"i"
>
<view
class=
"flex m-20 pd-20"
style=
"background-color:white;border-radius:10rpx;"
>
<image
style=
"margin: auto 10rpx;width: 60rpx;height: 60rpx;"
src=
"../../static/ic_coin.png"
>
</image>
<view
class=
"flex1 ml-10"
>
<view
class=
"mt-10"
style=
"font-size: 28rpx;color: black;"
>
{{
item
.
remark
}}
</view>
<view
class=
"mt-10"
style=
"font-size: 26rpx;color: darkgray;"
>
{{
item
.
time
}}
</view>
</view>
<view
style=
"margin:auto 10rpx auto auto;font-size: 36rpx;color: steelblue;"
>
{{
'+'
+
item
.
subValue
+
'书豆'
}}
</view>
</view>
</view>
</z-paging>
</view>
</
template
>
<
script
>
import
common
from
'@/mixins/common'
;
import
{
formateTime
}
from
"@/utils/utils.js"
export
default
{
name
:
'dotRecord'
,
mixins
:
[
common
],
data
()
{
return
{
dataList
:
[]
};
},
methods
:
{
show
()
{
if
(
this
.
$refs
.
paging
!=
null
)
{
this
.
$refs
.
paging
.
refresh
();
}
},
myFormateTime
(
time
)
{
return
formateTime
(
time
,
'yyyy-MM-dd hh:mm:ss'
)
},
queryList
(
page
,
size
)
{
this
.
post
({
url
:
'/vedio/assetsRecords/add'
,
data
:
{
page
,
size
},
showLoading
:
false
,
success
:
({
data
})
=>
{
this
.
$refs
.
paging
.
complete
(
data
.
list
);
}
});
}
}
};
</
script
>
<
style
lang=
"scss"
>
.body
{
background-color
:
whitesmoke
;
}
</
style
>
\ No newline at end of file
vedio/pagesD/payRecord/payRecord.vue
deleted
100644 → 0
View file @
d93855f0
<
template
>
<view
class=
"body"
>
<!--
<status-title
:showBack=
"true"
>
我的订单
</status-title>
-->
<z-paging
class=
"flex-1"
ref=
"paging"
v-model=
"dataList"
@
query=
"queryList"
:defaultPageNo=
"1"
:defaultPageSize=
"500"
>
<view
v-for=
"(item, i) in dataList"
:key=
"i"
>
<view
class=
"flex m-20 pd-20"
style=
"justify-content:space-between;background-color:white;border-radius:10rpx;"
>
<view
class=
"flex1"
>
<view
style=
"font-size: 28rpx;color: black;"
>
{{
item
.
remarks
}}
</view>
<view
style=
"font-size: 26rpx;color: gray;margin-top: 16rpx;"
>
付款时间:
{{
item
.
createtime
}}
</view>
<view
style=
"font-size: 26rpx;color: gray;margin-top: 1rpx;"
>
订单编号:
{{
item
.
orderid
}}
</view>
</view>
<view
style=
"display: flex;align-items: center;margin-right: 8rpx;font-size: 36rpx;color: red;"
>
¥
{{
item
.
balance
}}
</view>
</view>
</view>
</z-paging>
</view>
</
template
>
<
script
>
import
common
from
'@/mixins/common'
;
export
default
{
name
:
'index'
,
mixins
:
[
common
],
data
()
{
return
{
dataList
:
[]
};
},
methods
:
{
show
()
{
if
(
this
.
$refs
.
paging
!=
null
)
{
this
.
$refs
.
paging
.
refresh
();
}
},
queryList
(
page
,
size
)
{
this
.
post
({
url
:
'/vip/getOrderList'
,
data
:
{
page
,
size
},
showLoading
:
false
,
success
:
({
data
})
=>
{
if
(
data
.
list
.
length
>
0
)
{
this
.
$refs
.
paging
.
complete
([
data
.
list
[
0
]])
}
else
{
this
.
$refs
.
paging
.
complete
([])
}
}
});
}
}
};
</
script
>
<
style
lang=
"scss"
>
.body
{
background-color
:
whitesmoke
;
}
</
style
>
\ No newline at end of file
vedio/pagesD/readerRecord/readerRecord.vue
deleted
100644 → 0
View file @
d93855f0
<
template
>
<view
class=
"body"
>
<z-paging
class=
"flex-1"
ref=
"paging"
v-model=
"dataList"
@
query=
"queryList"
:defaultPageNo=
"1"
:defaultPageSize=
"500"
>
<view
style=
"font-size: 30rpx;font-weight: 777;margin-left: 12rpx;margin-top: 10rpx;"
>
最近阅读
</view>
<view
v-for=
"(item, i) in dataList"
:key=
"i"
>
<view
style=
"display: flex;flex-direction: row;background-color:white;border-radius:10rpx;justify-content:space-between;margin: 20rpx;padding-bottom: 20rpx;box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1);"
>
<view
style=
"display: flex;align-items: center;"
@
click=
"handleInfo(item)"
>
<view
style=
"display: flex;flex-direction: column;margin-left: 20rpx;margin-top: 20rpx;"
>
<view
style=
"font-size: 30rpx;color: black;"
>
{{
item
.
title
}}
</view>
<view
style=
"font-size: 22rpx;color: gray;margin-top: 16rpx;"
>
{{
item
.
summary
}}
</view>
<view
style=
"font-size: 28rpx;color: black;margin-top: 16rpx;"
>
作者:
{{
item
.
author
}}
</view>
</view>
</view>
<view
style=
"display: flex;align-items: center;margin-right: 8rpx;"
>
<view
style=
"display: flex;flex-direction: column;"
>
<image
v-if=
"!item.isCollect"
@
click=
"handleXing(item)"
style=
"width: 50rpx;height: 50rpx;display: flex;align-items: right;padding-right: 4rpx;"
src=
"../../static/home_collect_img_0.png"
></image>
<image
v-else
@
click=
"handleXing(item)"
style=
"width: 50rpx;height: 50rpx;display: flex;align-items: right;padding-right: 4rpx;"
src=
"../../static/home_collect_img_1.png"
></image>
<view
style=
"font-size: 22rpx;color: gray;margin-top: 10rpx;display: flex;justify-content: center;"
>
收藏
</view>
</view>
</view>
</view>
</view>
</z-paging>
</view>
</
template
>
<
script
>
import
common
from
'@/mixins/common'
;
import
{
navigateTo
,
message
,
alert
,
loading
}
from
'@/utils/fun.js'
;
import
{
openUrl
}
from
'@/utils/app+.js'
;
import
{
gotoBookContentPage
}
from
'../../common/services/page-route.js'
;
const
app
=
getApp
();
export
default
{
name
:
'index'
,
mixins
:
[
common
],
data
()
{
return
{
dataList
:
[]
};
},
methods
:
{
show
()
{
if
(
this
.
$refs
.
paging
!=
null
)
{
this
.
$refs
.
paging
.
refresh
();
}
},
queryList
(
page
,
size
)
{
this
.
post
({
url
:
'/book/readRecordList'
,
data
:
{
page
,
size
},
showLoading
:
false
,
success
:
({
data
})
=>
{
this
.
$refs
.
paging
.
complete
(
data
.
list
);
}
});
},
handleInfo
(
item
)
{
gotoBookContentPage
(
item
.
id
,
item
.
shortis
)
// var bookId = item.id;
// uni.navigateTo({
// url: `/page-subs/sub_A/book-content/book-content`,
// success: (res) => {
// res.eventChannel.emit("openBookContentPage", {
// bookId
// })
// }
// })
},
handleXing
(
item
)
{
var
that
=
this
;
//0未收藏,1收藏
if
(
!
item
.
isCollect
)
{
this
.
post
({
url
:
'/book/collect'
,
data
:
{
articleId
:
item
.
id
,
},
showLoading
:
false
,
success
:
({
data
})
=>
{
that
.
show
();
}
});
}
else
{
this
.
post
({
url
:
'/book/collectCancel'
,
data
:
{
articleId
:
item
.
id
,
},
showLoading
:
false
,
success
:
({
data
})
=>
{
that
.
show
();
}
});
}
}
}
};
</
script
>
<
style
>
.body
{
background-color
:
whitesmoke
;
}
.img
{
position
:
relative
;
border-radius
:
10
rpx
;
width
:
180
rpx
;
height
:
240
rpx
;
}
</
style
>
\ No newline at end of file
vedio/pagesD/useDotRecord/useDotRecord.vue
deleted
100644 → 0
View file @
d93855f0
<
template
>
<view
class=
"body"
>
<!--
<status-title
:showBack=
"true"
>
消费记录
</status-title>
-->
<z-paging
class=
"flex-1"
ref=
"paging"
v-model=
"dataList"
@
query=
"queryList"
>
<view
v-for=
"(item, i) in dataList"
:key=
"i"
>
<view
class=
"flex m-20 pd-20"
style=
"background-color:white;border-radius:10rpx;"
>
<image
style=
"margin: auto 10rpx;width: 60rpx;height: 60rpx;"
src=
"../../static/ic_shop.png"
>
</image>
<view
class=
"flex1 ml-10"
>
<view
class=
"mt-10"
style=
"font-size: 28rpx;color: black;"
>
{{
item
.
remark
}}
</view>
<view
class=
"mt-10"
style=
"font-size: 26rpx;color: darkgray;"
>
{{
item
.
time
}}
</view>
</view>
<view
style=
"margin:auto 10rpx auto auto;font-size: 36rpx;color: steelblue;"
>
{{
'-'
+
item
.
subValue
+
'书豆'
}}
</view>
</view>
</view>
</z-paging>
</view>
</
template
>
<
script
>
import
common
from
'@/mixins/common'
;
import
{
formateTime
}
from
"@/utils/utils.js"
export
default
{
name
:
'useDotRecord'
,
mixins
:
[
common
],
data
()
{
return
{
dataList
:
[]
};
},
methods
:
{
show
()
{
if
(
this
.
$refs
.
paging
!=
null
)
{
this
.
$refs
.
paging
.
refresh
();
}
},
myFormateTime
(
time
)
{
return
formateTime
(
time
,
'yyyy-MM-dd hh:mm:ss'
)
},
queryList
(
page
,
size
)
{
this
.
post
({
url
:
'/vedio/assetsRecords/sub'
,
data
:
{
page
,
size
},
showLoading
:
false
,
success
:
({
data
})
=>
{
this
.
$refs
.
paging
.
complete
(
data
.
list
);
}
});
}
}
};
</
script
>
<
style
lang=
"scss"
>
.body
{
background-color
:
whitesmoke
;
}
</
style
>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment