Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
CFFP-HB
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chao Sun
CFFP-HB
Commits
d160e73e
Commit
d160e73e
authored
Nov 17, 2022
by
kyle
Browse files
Options
Browse Files
Download
Plain Diff
合并代码
parents
752be9a3
42ef2c9b
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
210 additions
and
40 deletions
+210
-40
App.vue
+14
-0
api/api.ts
+5
-0
components/tabBar/tabBar.vue
+3
-3
manifest.json
+8
-5
pages.json
+7
-0
pages/courselist/courselist.vue
+7
-4
pages/index/index.vue
+1
-1
pages/pointsExchange/pointsExchange.vue
+2
-17
pages/taxRules/taxRules.vue
+115
-0
pages/withdrawal/withdrawal.vue
+48
-10
No files found.
App.vue
View file @
d160e73e
...
@@ -71,4 +71,18 @@
...
@@ -71,4 +71,18 @@
.container
uni-slider
.uni-slider-value
{
.container
uni-slider
.uni-slider-value
{
width
:
5ch
;
width
:
5ch
;
}
}
.btn
{
background
:
#3671F4
;
color
:
#fff
;
width
:
60%
;
margin
:
0
auto
;
height
:
80
rpx
;
line-height
:
80
rpx
;
text-align
:
center
;
border-radius
:
40
rpx
;
position
:
absolute
;
bottom
:
0
;
left
:
0
;
right
:
0
;
}
</
style
>
</
style
>
api/api.ts
View file @
d160e73e
...
@@ -160,5 +160,10 @@ export default {
...
@@ -160,5 +160,10 @@ export default {
// 订单保存
// 订单保存
saveOrder
(
params
){
saveOrder
(
params
){
return
request
(
`
${
cffpURL
}
/order/saveOrder`
,
"POST"
,
params
)
return
request
(
`
${
cffpURL
}
/order/saveOrder`
,
"POST"
,
params
)
},
//去提现接口
goFortuneWithdrawal
(
params
){
return
request
(
`
${
apiURL
}
/fortune/goFortuneWithdrawal`
,
"POST"
,
params
)
}
}
}
}
components/tabBar/tabBar.vue
View file @
d160e73e
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
<view
class=
"menu_content"
>
<view
class=
"menu_content"
>
<view
v-for=
"item in menuLists"
:key=
"item.link"
class=
"tabbar_item"
:class=
"
{'active':item.link == currentPage}" @click="navTo(item)">
<view
v-for=
"item in menuLists"
:key=
"item.link"
class=
"tabbar_item"
:class=
"
{'active':item.link == currentPage}" @click="navTo(item)">
<view
class=
"pic"
>
<view
class=
"pic"
>
<image
v-if=
"item.link == currentPage"
:src=
"'/static/tabbar/' + item.selectedIconPath + '.png'"
mode=
"widthFix"
></image>
<image
v-if=
"item.link == currentPage"
:src=
"'/static/tabbar/' + item.selectedIconPath + '.png'"
mode=
"widthFix"
></image>
<image
v-else
:src=
"'/static/tabbar/' + item.iconPath + '.png'"
mode=
"widthFix"
></image>
<image
v-else
:src=
"'/static/tabbar/' + item.iconPath + '.png'"
mode=
"widthFix"
></image>
</view>
</view>
...
@@ -13,7 +14,6 @@
...
@@ -13,7 +14,6 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
tabBarVue
from
'./tabBar.vue'
;
export
default
{
export
default
{
props
:
[
'currentPage'
],
props
:
[
'currentPage'
],
name
:
"tabBar"
,
name
:
"tabBar"
,
...
@@ -22,7 +22,7 @@ import tabBarVue from './tabBar.vue';
...
@@ -22,7 +22,7 @@ import tabBarVue from './tabBar.vue';
menuLists
:
[
menuLists
:
[
{
key
:
1
,
name
:
'首页'
,
iconPath
:
'home'
,
selectedIconPath
:
'home_active'
,
link
:
'index'
},
{
key
:
1
,
name
:
'首页'
,
iconPath
:
'home'
,
selectedIconPath
:
'home_active'
,
link
:
'index'
},
{
key
:
2
,
name
:
'SFP智能财策'
,
iconPath
:
'sfp'
,
selectedIconPath
:
'sfp_active'
,
link
:
'product'
},
{
key
:
2
,
name
:
'SFP智能财策'
,
iconPath
:
'sfp'
,
selectedIconPath
:
'sfp_active'
,
link
:
'product'
},
{
key
:
3
,
name
:
'CFFP认证'
,
iconPath
:
'cffp'
,
selectedIconPath
:
'cffp_active'
,
link
:
'c
ffp
'
},
{
key
:
3
,
name
:
'CFFP认证'
,
iconPath
:
'cffp'
,
selectedIconPath
:
'cffp_active'
,
link
:
'c
ourselist
'
},
{
key
:
4
,
name
:
'我的'
,
iconPath
:
'my'
,
selectedIconPath
:
'my_active'
,
link
:
'personalCenter'
},
{
key
:
4
,
name
:
'我的'
,
iconPath
:
'my'
,
selectedIconPath
:
'my_active'
,
link
:
'personalCenter'
},
]
]
}
}
...
@@ -37,7 +37,7 @@ import tabBarVue from './tabBar.vue';
...
@@ -37,7 +37,7 @@ import tabBarVue from './tabBar.vue';
}
}
},
},
mounted
()
{
mounted
()
{
//
console.log(this.currentPage)
console
.
log
(
this
.
currentPage
)
}
}
}
}
</
script
>
</
script
>
...
...
manifest.json
View file @
d160e73e
...
@@ -20,7 +20,8 @@
...
@@ -20,7 +20,8 @@
"modules"
:
{
"modules"
:
{
"Share"
:
{},
"Share"
:
{},
"Payment"
:
{},
"Payment"
:
{},
"VideoPlayer"
:
{}
"VideoPlayer"
:
{},
"OAuth"
:
{}
},
},
/*
应用发布信息
*/
/*
应用发布信息
*/
"distribute"
:
{
"distribute"
:
{
...
@@ -63,16 +64,18 @@
...
@@ -63,16 +64,18 @@
},
},
"ad"
:
{},
"ad"
:
{},
"payment"
:
{
"payment"
:
{
"alipay"
:
{
"__platform__"
:
[
"ios"
,
"android"
]
},
"weixin"
:
{
"weixin"
:
{
"__platform__"
:
[
"ios"
,
"android"
],
"__platform__"
:
[
"ios"
,
"android"
],
"appid"
:
"wxec09b9be6cff4eb3"
,
"appid"
:
"wxec09b9be6cff4eb3"
,
"UniversalLinks"
:
""
"UniversalLinks"
:
""
}
}
},
},
"oauth"
:
{}
"oauth"
:
{
"weixin"
:
{
"appid"
:
"wxec09b9be6cff4eb3"
,
"UniversalLinks"
:
""
}
}
},
},
"splashscreen"
:
{
"splashscreen"
:
{
"androidStyle"
:
"default"
,
"androidStyle"
:
"default"
,
...
...
pages.json
View file @
d160e73e
...
@@ -238,6 +238,13 @@
...
@@ -238,6 +238,13 @@
"navigationBarTitleText"
:
"提现详情"
,
"navigationBarTitleText"
:
"提现详情"
,
"enablePullDownRefresh"
:
false
"enablePullDownRefresh"
:
false
}
}
},{
"path"
:
"pages/taxRules/taxRules"
,
"style"
:
{
"navigationBarTitleText"
:
"纳税规则"
,
"enablePullDownRefresh"
:
false
}
}
}
],
],
//
"tabBar"
:
{
//
"tabBar"
:
{
...
...
pages/courselist/courselist.vue
View file @
d160e73e
...
@@ -7,22 +7,25 @@
...
@@ -7,22 +7,25 @@
</view>
</view>
</view>
</view>
</view>
</view>
<tabBar
:currentPage=
"currentPage"
v-if=
"fromPage!='index'"
></tabBar>
</
template
>
</
template
>
<
script
>
<
script
>
import
api
from
"../../api/api"
;
import
api
from
"../../api/api"
;
import
courseItem
from
"@/components/courseItem/courseItem.vue"
;
import
courseItem
from
"@/components/courseItem/courseItem.vue"
;
import
tabBar
from
'../../components/tabBar/tabBar.vue'
;
export
default
{
export
default
{
props
:[
'tagIds'
],
props
:[
'tagIds'
,
'fromPage'
],
data
(){
data
(){
return
{
return
{
cffpCourseInfos
:[]
cffpCourseInfos
:[],
currentPage
:
'courselist'
}
}
},
},
name
:
'courselist'
,
name
:
'courselist'
,
components
:{
components
:{
courseItem
courseItem
,
tabBar
},
},
onLoad
(){
onLoad
(){
},
},
...
...
pages/index/index.vue
View file @
d160e73e
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
<h4>
精品课程
</h4>
<h4>
精品课程
</h4>
<view
@
click=
"goToCourselist()"
>
更多
<text
class=
"iconfont icon-youjiantou"
></text></view>
<view
@
click=
"goToCourselist()"
>
更多
<text
class=
"iconfont icon-youjiantou"
></text></view>
</view>
</view>
<courselist
:tagIds=
"[1111]"
></courselist>
<courselist
:tagIds=
"[1111]"
:fromPage=
"'index'"
></courselist>
</view>
</view>
<tabBar
:currentPage=
"currentPage"
></tabBar>
<tabBar
:currentPage=
"currentPage"
></tabBar>
</view>
</view>
...
...
pages/pointsExchange/pointsExchange.vue
View file @
d160e73e
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
<view
class=
"record"
@
click=
"toRecord()"
>
<view
class=
"record"
@
click=
"toRecord()"
>
兑换记录
兑换记录
</view>
</view>
<view
class=
"
withdrawal_
btn"
@
click=
"toWithdrawal()"
>
<view
class=
"btn"
@
click=
"toWithdrawal()"
>
去提现
去提现
</view>
</view>
</view>
</view>
...
@@ -83,7 +83,7 @@
...
@@ -83,7 +83,7 @@
},
},
toWithdrawal
(){
toWithdrawal
(){
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
'/pages/withdrawal/withdrawal'
url
:
`/pages/withdrawal/withdrawal?exchangeAmount=
${
this
.
yesExchangeFortune
}
`
})
})
},
},
toRecord
(){
toRecord
(){
...
@@ -152,19 +152,5 @@
...
@@ -152,19 +152,5 @@
padding-right
:
30
rpx
;
padding-right
:
30
rpx
;
float
:
right
;
float
:
right
;
}
}
.withdrawal_btn
{
background
:
#3671F4
;
color
:
#fff
;
width
:
80%
;
margin
:
0
auto
;
height
:
80
rpx
;
line-height
:
80
rpx
;
text-align
:
center
;
border-radius
:
40
rpx
;
position
:
absolute
;
bottom
:
0
;
left
:
0
;
right
:
0
;
}
}
}
</
style
>
</
style
>
\ No newline at end of file
pages/taxRules/taxRules.vue
0 → 100644
View file @
d160e73e
<
template
>
<view
class=
""
>
<view
class=
"content_wrapper"
>
<h4>
劳务报酬税缴纳规则
</h4>
<view
class=
"content"
>
根据国家相关法律法规,提现将由CFFP财富中心官方代缴个税后(按劳务报酬税率计算),付款到用户的微信钱包内。 根据规则,奖实行按月累计扣税,若在当月发起多次提现,本次扣税基数将累计当月全部的提现金额。以下供参考,详细可在国家税务局查询。
</view>
<h4
style=
"text-align: center;"
>
劳务报酬所得预扣率表
</h4>
<view
style=
"color:#666;text-align: center;margin-bottom: 20rpx;"
>
(居民个人劳务报酬所得预预缴适用)
</view>
<view
style=
"margin-bottom: 20rpx;"
>
<view
class=
"list"
>
<view
class=
"list_item title"
>
级数
</view>
<view
class=
"list_item title"
>
预扣预缴应纳所得额
</view>
<view
class=
"list_item title"
>
预扣率(%)
</view>
<view
class=
"list_item title"
>
速算扣除数
</view>
</view>
<view
class=
"list"
>
<view
class=
"list_item"
>
1
</view>
<view
class=
"list_item"
>
不超过20000元的
</view>
<view
class=
"list_item"
>
20
</view>
<view
class=
"list_item"
>
0
</view>
</view>
<view
class=
"list"
style=
"background: #D0D3FF;"
>
<view
class=
"list_item"
>
2
</view>
<view
class=
"list_item"
>
不超过20000元至50000元的
</view>
<view
class=
"list_item"
>
30
</view>
<view
class=
"list_item"
>
2000
</view>
</view>
<view
class=
"list"
>
<view
class=
"list_item"
>
3
</view>
<view
class=
"list_item"
>
不超过50000元的
</view>
<view
class=
"list_item"
>
40
</view>
<view
class=
"list_item"
>
7000
</view>
</view>
</view>
<view
style=
"color: #666666;font-size: 24rpx;"
>
应纳税所得额=劳务报酬所得 - 减除费用,即: 当劳务报酬所得不超过4000元: 应纳税所得额=劳务报酬所得 - 800当劳务报酬所得超过: 应纳税所得额=劳务报酬所得(超过4000元)×(1-20%)预扣预缴税额=应纳税所得额×预扣率-速算扣除数。
</view>
<navigator
class=
"btn"
delta=
"1"
open-type=
"navigateBack"
>
知道了
</navigator>
</view>
</view>
</
template
>
<
script
>
export
default
{
data
(){
return
{
}
},
components
:{},
onLoad
(){
},
methods
:{
}
}
</
script
>
<
style
lang=
"scss"
>
.content_wrapper
{
padding
:
30
rpx
;
h4{
margin
:
20
rpx
auto
;
}
.content
{
color
:
#666666
;
font-size
:
24
rpx
;
background
:
#fff
;
}
.list
:nth-of-type
(
even
)
.list_item
{
border-right
:
1px
solid
#20269B
;
}
.list
:nth-of-type
(
odd
)
.list_item
{
border-right
:
1px
solid
#fff
;
}
.list
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
font-size
:
24
rpx
;
border
:
2
rpx
#20269B
solid
;
border-bottom
:
0
;
.list_item{
width
:
20%
;
height
:
70
rpx
;
line-height
:
70
rpx
;
text-align
:
center
;
}
.list_item
:nth-child
(
1
)
{
width
:
10%
;
}
.list_item
:nth-child
(
2
)
{
width
:
50%
;
}
.title
{
background
:
#20269B
;
color
:
#fff
;
}
.list_item
:nth-child
(
4
)
{
border-right
:
0
;
}
}
.list
:last-child
{
border-bottom
:
2
rpx
#20269B
solid
;
}
}
</
style
>
\ No newline at end of file
pages/withdrawal/withdrawal.vue
View file @
d160e73e
...
@@ -5,21 +5,21 @@
...
@@ -5,21 +5,21 @@
可兑换
可兑换
</view>
</view>
<view>
<view>
6,666
积分
{{
exchangeAmount
}}
积分
</view>
</view>
</view>
</view>
<view
class=
"content_wrapper"
>
<view
class=
"content_wrapper"
>
<view
class=
"item"
>
<view
class=
"item"
>
<text>
提现金额(税前)
</text>
<text>
提现金额(税前)
</text>
<text></text>
<text>
{{
exchangeAmount
}}
</text>
</view>
</view>
<view
class=
"item"
>
<view
class=
"item"
>
<text>
代缴税
</text>
<text>
代缴税
</text>
<text></text>
<text>
{{
taxAmount
}}
</text>
</view>
</view>
<view
class=
"item"
>
<view
class=
"item"
>
<text>
实际到账
</text>
<text>
实际到账
</text>
<text></text>
<text>
{{
noTaxAmount
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"content_wrapper"
>
<view
class=
"content_wrapper"
>
...
@@ -36,32 +36,66 @@
...
@@ -36,32 +36,66 @@
提示:
提示:
</view>
</view>
<view
class=
""
>
<view
class=
""
>
1、金额低于1元时无法提现
;
1、金额低于1元时无法提现
;
</view>
</view>
<view
class=
""
>
<view
class=
""
>
2、当前可提金额是您的税前收入,具体计税规则可参考
《劳务报酬税缴纳规则》;
2、当前可提金额是您的税前收入,具体计税规则可参考
</view>
</view>
<view
class=
""
>
<view
class=
""
>
3、如需帮助,请联系CFFP财富中心客服电话:12345678 ;
<navigator
class=
"rule"
url=
"/pages/taxRules/taxRules"
>
《劳务报酬税缴纳规则》;
</navigator>
</view>
</view>
<view
class=
""
>
3、如需帮助,请联系CFFP财富中心客服电话:12345678;
</view>
</view>
<view
class=
"btn"
>
确认提现
</view>
</view>
</view>
</view>
</view>
</view>
</
template
>
</
template
>
<
script
>
<
script
>
import
api
from
'../../api/api'
;
export
default
{
export
default
{
data
(){
data
(){
return
{
return
{
exchangeAmount
:
null
,
partnerTradeNo
:
null
,
taxAmount
:
null
,
noTaxAmount
:
null
}
}
},
},
components
:{},
components
:{},
onLoad
(){
onLoad
(
options
){
this
.
exchangeAmount
=
options
.
exchangeAmount
;
this
.
partnerTradeNo
=
options
.
partnerTradeNo
;
this
.
goFortuneWithdrawal
()
},
},
methods
:{
methods
:{
goFortuneWithdrawal
(){
const
param
=
{
userId
:
uni
.
getStorageSync
(
'cffp_userId'
),
exchangeAmount
:
this
.
exchangeAmount
,
partnerTradeNo
:
this
.
partnerTradeNo
?
this
.
partnerTradeNo
:
null
}
api
.
goFortuneWithdrawal
(
param
).
then
((
res
)
=>
{
console
.
log
(
res
)
if
(
res
[
'success'
]){
const
data
=
res
[
'data'
][
'cffpFortuneExchangeVO'
]
this
.
exchangeAmount
=
data
.
exchangeAmount
;
this
.
partnerTradeNo
=
data
.
partnerTradeNo
;
this
.
taxAmount
=
data
.
taxAmount
;
this
.
noTaxAmount
=
data
.
noTaxAmount
;
}
else
{
this
.
exchangeAmount
=
0
;
this
.
partnerTradeNo
=
null
;
this
.
taxAmount
=
0
;
this
.
noTaxAmount
=
0
;
}
})
}
}
}
}
}
</
script
>
</
script
>
...
@@ -114,6 +148,9 @@
...
@@ -114,6 +148,9 @@
color
:
#666666
;
color
:
#666666
;
margin-bottom
:
10
rpx
;
margin-bottom
:
10
rpx
;
}
}
.rule
{
color
:
#0A2F99
;
}
}
}
}
}
</
style
>
</
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