Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gxpt_wechat
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pseer
gxpt_wechat
Commits
11667d02
Commit
11667d02
authored
Jul 22, 2024
by
zhangzhen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
内容完善
parent
b0408b22
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
838 additions
and
93 deletions
+838
-93
toolBox.vue
components/toolBox/toolBox.vue
+16
-1
index.config.js
config/index.config.js
+1
-1
pages.json
pages.json
+7
-0
myInfo.vue
pages/my/myInfo.vue
+329
-16
vipCreate.vue
pages/vipCreate/vipCreate.vue
+320
-75
rule.vue
setting/rule/rule.vue
+165
-0
No files found.
components/toolBox/toolBox.vue
View file @
11667d02
<
template
>
<view
class=
"tool-box"
>
<view
class=
"gitf"
@
tap=
"onNavToVip"
>
<image
:src=
"assetsPath+'/gitf.png'"
mode=
"widthFix"
></image>
</view>
<view
v-for=
"(item, index) in toolList"
:key=
"index"
class=
"tool-item"
:class=
"
{active:!show}"
:style="{transitionDuration: dNum+'s' }" @tap.stop="onHandle(item)">
...
...
@@ -31,6 +34,7 @@
return
{
show
:
true
,
dNum
:
0.4
,
assetsPath
:
config
.
assetsPath
,
toolList
:
[{
name
:
"验券"
,
url
:
config
.
assetsPath
+
'/tool_3_v1.png'
,
...
...
@@ -87,6 +91,11 @@
},
methods
:
{
onNavToVip
(){
uni
.
switchTab
({
url
:
"/pages/vipCreate/vipCreate"
})
},
onGetSysConfig
()
{
let
sysConfigList
=
uni
.
getStorageSync
(
'sysConfig'
)
let
s
=
sysConfigList
.
find
(
item
=>
item
.
configKey
===
'wechat.service.url'
)
...
...
@@ -176,8 +185,14 @@
position
:
fixed
;
bottom
:
10vh
;
right
:
0
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
flex-end
;
z-index
:
99
;
.gitf{
width
:
144
upx
;
max-height
:
150
upx
;
}
.tool-item
{
display
:
flex
;
flex-direction
:
column
;
...
...
config/index.config.js
View file @
11667d02
...
...
@@ -3,7 +3,7 @@ const CONFIG = {
development
:
{
// assetsPath: 'https://www.coujio.com/wechat_static', // 静态资源路径
// assetsPath: 'https://coujiao.pseer.com/wechat_static', // 静态资源路径
assetsPath
:
'http://10.24.5.
167
:8211/static'
,
// 静态资源路径
assetsPath
:
'http://10.24.5.
63
:8211/static'
,
// 静态资源路径
// baseUrl: 'https://www.coujio.com/front-api', // 后台接口请求地址
// baseUrl: 'https://coujiao.pseer.com/front-api', // 后台接口请求地址
baseUrl
:
'http://129.211.46.84:8883/front-api'
,
...
...
pages.json
View file @
11667d02
...
...
@@ -183,6 +183,13 @@
"navigationBarTitleText"
:
"充值记录"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"rule/rule"
,
"style"
:
{
"navigationBarTitleText"
:
"活动规则"
,
"enablePullDownRefresh"
:
false
}
}
]
}
...
...
pages/my/myInfo.vue
View file @
11667d02
<
template
>
<view
class=
"myInfo"
>
<view
class=
"header"
:style=
"
{
height: statusBarHeight+180+'px',
paddingTop: statusBarHeight+'px'}">
<view
class=
"header"
:style=
"
{paddingTop: statusBarHeight+'px'}">
<view
class=
"header-content-box"
>
<view
class=
"login-content"
>
<view
class=
"flex-1 flex-row"
@
tap=
"onNavToSetUserInfo"
>
...
...
@@ -11,19 +11,101 @@
mode=
"scaleToFill"
@
tap
.
stop=
"onProview"
></image>
</view>
</view>
<view
class=
"flex-col margin-left"
>
<view
class=
"flex-col margin-left
user-info-box
"
>
<text
class=
"text-title text-lg text-bold text-xxl"
>
{{
userInfo
.
nickName
||
"凑角用户"
}}
</text>
<!--
<view
class=
"flex-row"
style=
"margin-top: 10rpx;"
>
<text
class=
"cuIcon-hotfill text-white"
></text>
<text
class=
"text-white text-lg"
>
会员用户
</text>
</view>
-->
<view
class=
"flex-row"
style=
"margin-top: 10rpx;"
>
<view
v-if=
"!userInfo.memberConfig || (userInfo.memberConfig&&userInfo.memberConfig.memberType ==1)"
class=
"relative"
:class=
"!userInfo.memberConfig?'grayscale':''"
>
<image
class=
"img-icon"
:src=
"assetsPath+'/tag_icon_1.png'"
mode=
"widthFix"
></image>
<view
class=
"absolute"
>
<text
class=
"text-1"
>
充值会员
</text>
</view>
</view>
<view
v-if=
"!userInfo.memberConfig || (userInfo.memberConfig&&userInfo.memberConfig.memberType ==2)"
class=
"relative"
:class=
"!userInfo.memberConfig?'grayscale':''"
>
<image
class=
"img-icon"
:src=
"assetsPath+'/tag_icon_2.png'"
mode=
"widthFix"
></image>
<view
class=
"absolute"
>
<text
class=
"text-1"
>
权益会员
</text>
</view>
</view>
</view>
<view
v-if=
"userInfo.memberConfig && userInfo.memberConfig.memberType ==1"
class=
"tip-date"
>
<text>
{{
userInfo
.
consumerMember
.
expirationDate
}}
到期
</text>
</view>
</view>
<view
class=
"nav-right"
@
tap
.
stop=
"onNavToSetUserInfo"
>
<image
class=
"img"
:src=
"assetsPath+'/setting.png'"
mode=
"scaleToFill"
></image>
<text
class=
"text-gray"
>
修改资料
</text>
</view>
</view>
<view
class=
"remeber-info-box"
>
<view
class=
"relative flex-7"
>
<image
v-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===2"
class=
"level-bg"
:src=
"assetsPath+'/user/tongj_bg_1.png'"
mode=
"scaleToFill"
></image>
<image
v-else-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===3"
class=
"level-bg"
:src=
"assetsPath+'/user/yj_bg_1.png'"
mode=
"scaleToFill"
></image>
<image
v-else-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===4"
class=
"level-bg"
:src=
"assetsPath+'/user/jj_bg_1.png'"
mode=
"scaleToFill"
></image>
<image
v-else
class=
"level-bg"
:src=
"assetsPath+'/user/tj_bg_1.png'"
mode=
"scaleToFill"
></image>
<view
class=
"absolute level-content"
>
<view
class=
"part-left"
>
<view
v-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===4"
class=
"level level-4"
>
<text
class=
"text-1"
>
LV
{{
userInfo
.
memberConfig
.
levelName
}}
</text>
<!--
<text
class=
"text-2"
>
还差
{{
userInfo
.
memberConfig
.
nextLimitRequirements
-
userInfo
.
consumerWallet
.
remainingIntegral
}}
积分可升级为
{{
userInfo
.
memberConfig
.
nextMembershipName
}}
</text>
-->
<view
class=
"flex-row"
>
<text
class=
"text-3"
>
当前积分
</text>
<text
class=
"text-4"
>
{{
userInfo
.
consumerWallet
.
remainingIntegral
}}
</text>
</view>
</view>
<view
v-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===3"
class=
"level level-3"
>
<text
class=
"text-1"
>
LV
{{
userInfo
.
memberConfig
.
levelName
}}
</text>
<text
class=
"text-2"
>
还差
{{
userInfo
.
memberConfig
.
nextLimitRequirements
-
Number
(
userInfo
.
consumerWallet
.
remainingIntegral
)
}}
积分可升级为
{{
userInfo
.
memberConfig
.
nextMembershipName
}}
</text>
<view
class=
"flex-row"
>
<text
class=
"text-3"
>
当前积分
</text>
<text
class=
"text-4"
>
{{
userInfo
.
consumerWallet
.
remainingIntegral
}}
</text>
</view>
</view>
<view
v-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===2"
class=
"level level-2"
>
<text
class=
"text-1"
>
LV
{{
userInfo
.
memberConfig
.
levelName
}}
</text>
<text
class=
"text-2"
>
还差
{{
userInfo
.
memberConfig
.
nextLimitRequirements
-
Number
(
userInfo
.
consumerWallet
.
remainingIntegral
)
}}
积分可升级为
{{
userInfo
.
memberConfig
.
nextMembershipName
}}
</text>
<view
class=
"flex-row"
>
<text
class=
"text-3"
>
当前积分
</text>
<text
class=
"text-4"
>
{{
userInfo
.
consumerWallet
.
remainingIntegral
}}
</text>
</view>
</view>
<view
v-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===1"
class=
"level level-1"
>
<text
class=
"text-1"
>
LV
{{
userInfo
.
memberConfig
.
levelName
}}
</text>
<text
class=
"text-2"
>
还差
{{
userInfo
.
memberConfig
.
nextLimitRequirements
-
Number
(
userInfo
.
consumerWallet
.
remainingIntegral
)
}}
积分可升级为
{{
userInfo
.
memberConfig
.
nextMembershipName
}}
</text>
<view
class=
"flex-row"
>
<text
class=
"text-3"
>
当前积分
</text>
<text
class=
"text-4"
>
{{
userInfo
.
consumerWallet
.
remainingIntegral
}}
</text>
</view>
</view>
<view
v-else
class=
"level level-1"
>
<text
class=
"text-1"
>
LV 0
</text>
<text
class=
"text-2"
>
您还不是会员哦,快来加入吧!
</text>
</view>
</view>
<view
class=
"part-right"
>
<image
v-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===4"
class=
"tag-icon"
:src=
"assetsPath+'/user/tag_icon_4.png'"
mode=
"widthFix"
></image>
<image
v-else-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===3"
class=
"tag-icon"
:src=
"assetsPath+'/user/tag_icon_3.png'"
mode=
"widthFix"
></image>
<image
v-else-if=
"userInfo.memberConfig && userInfo.memberConfig.membershipLevel ===2"
class=
"tag-icon"
:src=
"assetsPath+'/user/tag_icon_2.png'"
mode=
"widthFix"
></image>
<image
v-else
class=
"tag-icon"
:src=
"assetsPath+'/user/tag_icon_1.png'"
mode=
"widthFix"
></image>
</view>
</view>
</view>
<view
v-if=
"false"
class=
"flex-3"
>
<text
class=
"text-1"
>
次卡
</text>
<text
class=
"text-2"
>
权益会员专享
</text>
<view
class=
"flex-row"
>
<text
class=
"text-3"
>
还剩
</text>
<text
class=
"text-4"
>
3
</text>
<text
class=
"text-3"
>
张
</text>
</view>
</view>
</view>
</view>
</view>
</view>
...
...
@@ -169,7 +251,7 @@
<text
class=
"text-gray"
>
联系我们
</text>
</view>
</view>
<view
class=
"item-box"
@
tap=
"onNavByPath('cleanManage')"
>
<view
v-if=
"userInfo.isCleaner"
class=
"item-box"
@
tap=
"onNavByPath('cleanManage')"
>
<view
class=
"icon-img"
>
<image
:src=
"assetsPath+'/user/tool_3.png'"
mode=
"scaleToFill"
></image>
</view>
...
...
@@ -177,7 +259,7 @@
<text
class=
"text-gray"
>
保洁管理
</text>
</view>
</view>
<view
class=
"item-box"
@
tap=
"onNavByPath('cleanRecord')"
>
<view
v-if=
"userInfo.isAdmin && !userInfo.isCleaner"
class=
"item-box"
@
tap=
"onNavByPath('cleanRecord')"
>
<view
class=
"icon-img"
>
<image
:src=
"assetsPath+'/user/tool_3.png'"
mode=
"scaleToFill"
></image>
</view>
...
...
@@ -185,7 +267,7 @@
<text
class=
"text-gray"
>
保洁记录
</text>
</view>
</view>
<view
class=
"item-box"
@
tap=
"onNavByPath('deviceManage')"
>
<view
v-if=
"userInfo.isAdmin"
class=
"item-box"
@
tap=
"onNavByPath('deviceManage')"
>
<view
class=
"icon-img"
>
<image
:src=
"assetsPath+'/user/tool_3.png'"
mode=
"scaleToFill"
></image>
</view>
...
...
@@ -482,13 +564,11 @@
.header-content-box
{
display
:
flex
;
flex
:
1
;
padding-top
:
40px
;
.login-content
{
display
:
flex
;
flex-direction
:
column
;
width
:
100%
;
margin-top
:
30
upx
;
>.flex-row
{
position
:
relative
;
align-items
:
center
;
...
...
@@ -519,8 +599,7 @@
align-items
:
center
;
position
:
absolute
;
right
:
5vw
;
//
margin-top
:
20
upx
;
margin-bottom
:
60
upx
;
.img
{
width
:
14px
;
height
:
16px
;
...
...
@@ -610,7 +689,6 @@
flex-direction
:
column
;
align-items
:
center
;
width
:
100%
;
margin-top
:
-28
upx
;
}
.main
{
width
:
100%
;
...
...
@@ -749,4 +827,238 @@
flex-wrap
:
wrap
;
}
}
.user-info-box
{
.relative{
margin-right
:
4
upx
;
.img-icon{
display
:
block
;
width
:
142
upx
;
max-height
:
40
upx
;
}
}
.absolute
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
text{
font-weight
:
normal
;
font-size
:
20
rpx
;
margin
:
0
0
2
upx
30
upx
;
}
.text-1
{
color
:
#8C1E41
;
}
.text-2
{
color
:
#472F1E
;
}
}
.grayscale
{
filter
:
grayscale
(
100%
);
}
.tip-date
{
font-weight
:
normal
;
font-size
:
20
rpx
;
color
:
#A3A3A3
;
margin-top
:
10
upx
;
}
}
.remeber-info-box
{
display
:
flex
;
flex-direction
:
row
;
width
:
90%
;
margin
:
20
upx
auto
10
upx
;
.flex-7{
display
:
flex
;
flex
:
1
;
height
:
100%
;
.level-bg{
display
:
block
;
width
:
100%
;
height
:
136
rpx
;
}
.level-content
{
display
:
flex
;
justify-content
:
space-between
;
.part-left{
height
:
100%
;
.level{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
padding-left
:
24
upx
;
height
:
100%
;
.text-1{
font-weight
:
900
;
font-size
:
32
upx
;
color
:
#A3A3A3
;
font-style
:
italic
;
}
.text-2
{
font-weight
:
normal
;
font-size
:
20
upx
;
margin-top
:
4
upx
;
}
.flex-row
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
width
:
160
rpx
;
height
:
32
upx
;
border-radius
:
4
upx
;
margin-top
:
8
upx
;
.text-3{
font-weight
:
normal
;
font-size
:
18
upx
;
}
.text-4
{
font-weight
:
normal
;
font-size
:
26
rpx
;
font-style
:
italic
;
margin-left
:
10
upx
;
}
}
}
.level-4
{
.text-1{
background
:
linear-gradient
(
104deg
,
#FFB875
0%
,
#FFEDC4
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
.text-2
{
color
:
#F3E3C6
;
}
.flex-row
{
background
:
#615D73
;
border
:
1px
solid
#F9ECEC
;
.text-3{
color
:
#F3E3C6
;
}
.text-4
{
color
:
#FFB875
;
}
}
}
.level-3
{
.text-1{
background
:
linear-gradient
(
-90deg
,
#222A5E
0%
,
#4C559E
46.9482421875%
,
#222A5E
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
.text-2
{
color
:
#5A63A5
;
}
.flex-row
{
background
:
#BAC6D2
;
border
:
1px
solid
#464F8E
;
.text-3{
color
:
#5A63A5
;
}
.text-4
{
color
:
#464F8E
;
}
}
}
.level-2
{
.text-1{
background
:
linear-gradient
(
47deg
,
#FD7C01
0%
,
#FCAB00
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
.text-2
{
color
:
#985E39
;
}
.flex-row
{
background
:
#FFEED9
;
border
:
1px
solid
#DE966F
;
.text-3{
color
:
#985E39
;
}
.text-4
{
color
:
#701700
;
}
}
}
.level-1
{
.text-1{
background
:
linear-gradient
(
47deg
,
#E9EEEE
0%
,
#FBFFFC
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
.text-2
{
color
:
#F1F6F4
;
}
.flex-row
{
background
:
#E3E6E8
;
border
:
1px
solid
#E3E6E8
;
.text-3{
color
:
#9D9D9D
;
}
.text-4
{
color
:
#9D9D9D
;
}
}
}
}
.part-right
{
display
:
flex
;
align-items
:
center
;
height
:
100%
;
padding-right
:
20
upx
;
.tag-icon{
display
:
block
;
width
:
120
upx
;
}
}
}
}
.flex-3
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
width
:
184
rpx
;
height
:
136
rpx
;
background
:
linear-gradient
(
71deg
,
#FFFFFF
0%
,
#FBF5DD
0%
,
#FCDFC5
0%
,
#FFCD9C
98%
);
border-radius
:
14
rpx
;
border
:
1px
solid
#FDD8B8
;
margin-left
:
20
upx
;
padding-left
:
20
upx
;
.text-1{
font-weight
:
bolder
;
font-size
:
32
rpx
;
font-style
:
italic
;
color
:
#A3A3A3
;
background
:
linear-gradient
(
47deg
,
#FD7C01
0%
,
#FCAB00
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
.text-2
{
font-size
:
20
rpx
;
color
:
#985E39
;
margin-top
:
4
upx
;
}
.flex-row
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
width
:
102
rpx
;
height
:
32
rpx
;
background
:
#FFEED9
;
border-radius
:
4
rpx
;
border
:
1px
solid
#E6A37F
;
margin-top
:
8
upx
;
.text-3{
font-size
:
18
rpx
;
color
:
#985E39
;
}
.text-4
{
font-size
:
26
rpx
;
color
:
#701700
;
margin
:
2
upx
4
upx
0
;
}
}
}
}
</
style
>
\ No newline at end of file
pages/vipCreate/vipCreate.vue
View file @
11667d02
...
...
@@ -38,7 +38,8 @@
</view>
<view
v-if=
"tabIndex ==1"
class=
"list-box"
>
<view
v-for=
"(item,k) in rechargeConfList"
:key=
"k"
class=
"flex-col item"
@
tap=
"onRechargeChange(k)"
>
<view
v-for=
"(item,k) in rechargeConfList"
:key=
"k"
class=
"flex-col item"
@
tap=
"onRechargeChange(k)"
>
<image
class=
"amount-bg"
:src=
"assetsPath+'/vip/amount_bg.png'"
mode=
"widthFix"
></image>
<view
class=
"flex-col item-content"
:class=
"rechargeIndex === k?'active':''"
>
<view
v-if=
"item.giveType.includes('1')"
class=
"preferential"
>
...
...
@@ -62,7 +63,7 @@
</view>
</view>
</view>
<view
v-if=
"tabIndex ==2"
class=
"flex-col list-box-2"
>
<view
class=
"flex-row part-1"
>
<view
class=
"text-bg-1"
>
...
...
@@ -77,7 +78,7 @@
<view
class=
"flex-5"
>
<view
class=
"flex-row"
>
<text
class=
"text-1"
>
权益
</text>
<text
class=
"text-2"
>
会员
优惠享不停
</text>
<text
class=
"text-2"
>
会员 优惠享不停
</text>
</view>
<text
class=
"text-3"
>
有效期:领取后1年内有效
</text>
</view>
...
...
@@ -88,32 +89,81 @@
<text
class=
"text-3"
>
00
</text>
</view>
<view
class=
"cu-btn-box"
@
tap=
"onSubmit"
>
<button
class=
"cu-btn"
:class=
"consumerMemberStatus?'bg-gray':'bg-pink'"
>
立即开通
</button>
<button
class=
"cu-btn"
:class=
"consumerMemberStatus?'bg-gray':'bg-pink'"
>
立即开通
</button>
</view>
</view>
</view>
</view>
<view
class=
"rule-tip"
>
<checkbox-group
@
change=
"onRuleTipChange"
>
<checkbox
class=
'round yellow'
:class=
"checked?'checked':''"
:checked=
"checked"
value=
"checked"
style=
"transform: scale(0.6);"
></checkbox>
<checkbox
class=
'round yellow'
:class=
"checked?'checked':''"
:checked=
"checked"
value=
"checked"
style=
"transform: scale(0.6);"
></checkbox>
</checkbox-group>
<text>
我已阅读
</text><text
class=
"text-pink"
>
用户充值协议
</text><text>
, 并同意协议内容
</text>
<text>
我已阅读
</text><text
class=
"text-pink"
@
tap=
"onNavToRule2"
>
用户充值协议
</text><text>
,
并同意协议内容
</text>
</view>
</view>
</view>
</view>
<view
v-if=
"tabIndex ==1"
class=
"flex-col"
>
<button
class=
"cu-btn confirm-btn"
@
tap=
"onNavToRecharge"
>
<text>
立即充值
</text>
</button>
<view
class=
"rule-tip"
>
<checkbox-group
@
change=
"onRuleTipChange"
>
<checkbox
class=
'round yellow'
:class=
"checked?'checked':''"
:checked=
"checked"
value=
"checked"
style=
"transform: scale(0.6);"
></checkbox>
</checkbox-group>
<text>
我已阅读
</text><text
class=
"text-pink"
>
用户充值协议
</text><text>
, 并同意协议内容
</text>
</view>
</view>
<view
v-if=
"tabIndex ==1"
class=
"flex-col"
>
<button
class=
"cu-btn confirm-btn"
@
tap=
"onNavToRecharge"
>
<text>
立即充值
</text>
</button>
<view
class=
"rule-tip"
>
<checkbox-group
@
change=
"onRuleTipChange"
>
<checkbox
class=
'round yellow'
:class=
"checked?'checked':''"
:checked=
"checked"
value=
"checked"
style=
"transform: scale(0.6);"
></checkbox>
</checkbox-group>
<text>
我已阅读
</text><text
class=
"text-pink"
@
tap=
"onNavToRule2"
>
用户充值协议
</text><text>
, 并同意协议内容
</text>
</view>
</view>
<view
v-if=
"tabIndex ==2"
class=
"bg-box-1 margin-top"
>
<view
class=
"bg-box-2"
>
<view
class=
"flex-row-center title-content"
>
<view
class=
"xx"
>
<image
:src=
"assetsPath+'/xx.png'"
mode=
"widthFix"
></image>
</view>
<view
class=
"title-text"
>
<view
class=
"text"
>
<text>
权益会员专属活动
</text>
</view>
<view
class=
"line"
>
</view>
</view>
<view
class=
"xx"
>
<image
:src=
"assetsPath+'/xx.png'"
mode=
"widthFix"
></image>
</view>
</view>
<view
class=
"prefer-box-list"
>
<view
v-for=
"(item,k) in preferList"
:key=
"k"
class=
"list-item"
>
<image
class=
"img"
:src=
"item.iconUrl"
mode=
"widthFix"
></image>
<text
class=
"text-title"
>
{{
item
.
title
}}
</text>
<text
class=
"text-slogan"
>
{{
item
.
slogan
}}
</text>
</view>
</view>
<view
class=
"look-prefer-nav"
>
<text
class=
"text-title"
>
点击可查看权益详情
</text>
<image
class=
"img"
:src=
"assetsPath+'/vip/icon_right.png'"
mode=
"widthFix"
></image>
</view>
</view>
<view
class=
"adorn-1"
>
<image
class=
"img"
:src=
"assetsPath+'/vip/adorn_1.png'"
mode=
"widthFix"
></image>
</view>
<view
class=
"adorn-2"
>
<image
class=
"img"
:src=
"assetsPath+'/vip/adorn_2.png'"
mode=
"widthFix"
></image>
</view>
</view>
</view>
<view
class=
"rule-btn"
@
tap=
"onNavToRule"
>
<text>
规则
</text>
</view>
<f-tabbar></f-tabbar>
</view>
...
...
@@ -125,11 +175,11 @@
equityMembersList
,
createEquityMembers
}
from
"@/api/uerInfo.js"
;
import
{
getUserInfo
,
}
from
"@/api/index.js"
import
{
rechargeConf
,
createRecharge
...
...
@@ -147,9 +197,60 @@
list
:
[],
rechargeConfList
:
[],
tabIndex
:
1
,
rechargeIndex
:
0
,
rechargeIndex
:
0
,
index
:
0
,
consumerMemberStatus
:
false
consumerMemberStatus
:
false
,
preferList
:
[{
iconUrl
:
config
.
assetsPath
+
"/vip/p_1.png"
,
title
:
"会员价"
,
slogan
:
"最低享98折"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_2.png"
,
title
:
"专属礼物"
,
slogan
:
"好礼享不停"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_3.png"
,
title
:
"会员日"
,
slogan
:
"半价活动"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_4.png"
,
title
:
"特定活动"
,
slogan
:
"免报名费"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_5.png"
,
title
:
"邀请有礼"
,
slogan
:
"推荐返利"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_6.png"
,
title
:
"专属储物柜"
,
slogan
:
"一年使用期限"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_7.png"
,
title
:
"专属客服"
,
slogan
:
"一对一服务"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_8.png"
,
title
:
"联营开店"
,
slogan
:
"共享资源"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_9.png"
,
title
:
"商城"
,
slogan
:
"会员折扣"
},
{
iconUrl
:
config
.
assetsPath
+
"/vip/p_10.png"
,
title
:
"次卡"
,
slogan
:
"特惠购"
}
]
};
},
onLoad
()
{
...
...
@@ -161,24 +262,24 @@
onGetUserInfo
()
{
getUserInfo
().
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
data
.
consumerMember
&&
res
.
data
.
data
.
consumerMember
.
memberType
==
2
)
{
if
(
res
.
data
.
data
.
consumerMember
&&
res
.
data
.
data
.
consumerMember
.
memberType
==
2
)
{
let
expirationDate
=
moment
(
res
.
data
.
data
.
consumerMember
.
expirationDate
).
valueOf
();
let
nowDate
=
moment
().
valueOf
()
if
(
nowDate
<=
expirationDate
)
{
if
(
nowDate
<=
expirationDate
)
{
this
.
consumerMemberStatus
=
true
;
}
}
}
})
},
onRechargeChange
(
k
){
onRechargeChange
(
k
)
{
this
.
rechargeIndex
=
k
;
},
onRuleTipChange
(
e
){
console
.
log
(
e
,
99999
)
onRuleTipChange
(
e
)
{
console
.
log
(
e
,
99999
)
this
.
checked
=
e
.
detail
.
value
.
includes
(
"checked"
)
},
onLoading
()
{
...
...
@@ -209,15 +310,16 @@
this
.
checked
=
false
;
},
onSubmit
()
{
if
(
!
this
.
checked
)
{
if
(
!
this
.
checked
)
{
uni
.
showToast
({
icon
:
"none"
,
title
:
"请先阅读充值协议并同意"
icon
:
"none"
,
title
:
"请先阅读充值协议并同意"
})
return
;
}
let
that
=
this
;
uni
.
showLoading
({
title
:
"提交中..."
title
:
"提交中..."
})
createEquityMembers
({
payType
:
1
,
...
...
@@ -237,7 +339,9 @@
icon
:
"success"
,
title
:
"下单成功"
,
success
:
()
=>
{
setTimeout
(()
=>
{
that
.
onGetUserInfo
();
},
1000
)
}
})
},
...
...
@@ -255,16 +359,26 @@
})
},
onNavToRule
()
{
uni
.
navigateTo
({
url
:
"/setting/rule/rule?keyData=vip_user_rule"
})
},
onNavToRule2
()
{
uni
.
navigateTo
({
url
:
"/setting/rule/rule?keyData=user_pay_protocol"
})
},
onNavToRecharge
()
{
if
(
!
this
.
checked
)
{
if
(
!
this
.
checked
)
{
uni
.
showToast
({
icon
:
"none"
,
title
:
"请先阅读充值协议并同意"
icon
:
"none"
,
title
:
"请先阅读充值协议并同意"
})
return
;
}
uni
.
showLoading
({
title
:
"提交中..."
title
:
"提交中..."
})
createRecharge
({
payType
:
1
,
...
...
@@ -333,6 +447,7 @@
padding-bottom
:
60
upx
;
.bg-box-1
{
position
:
relative
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
...
...
@@ -392,6 +507,24 @@
}
}
}
.adorn-1
{
position
:
absolute
;
top
:
-24
upx
;
right
:
20
upx
;
.img{
width
:
74
upx
;
max-height
:
78
upx
;
}
}
.adorn-2
{
position
:
absolute
;
bottom
:
-40
upx
;
left
:
24
upx
;
.img{
width
:
78
upx
;
max-height
:
90
upx
;
}
}
}
.action-box-list
{
...
...
@@ -454,8 +587,9 @@
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
align-items
:
center
;
}
.line
{
width
:
80%
;
height
:
1
rpx
;
...
...
@@ -499,12 +633,14 @@
flex-direction
:
row
;
align-items
:
flex-end
;
justify-content
:
center
;
color
:
#FE3F00
;
color
:
#FE3F00
;
.symbol
{
font-weight
:
400
;
font-size
:
29
upx
;
margin-bottom
:
10
upx
;
}
.num
{
font-weight
:
400
;
font-size
:
64
upx
;
...
...
@@ -520,46 +656,53 @@
height
:
50
upx
;
background
:
linear-gradient
(
-90deg
,
#FCD25B
,
#FA541D
);
border-radius
:
0
0
23
upx
23
upx
;
z-index
:
2
;
z-index
:
2
;
text
{
font-size
:
19
upx
;
color
:
#ffffff
;
}
}
.active
{
.active
{
background
:
linear-gradient
(
-90deg
,
#FCD25B
,
#FA541D
);
box-shadow
:
0
4
upx
12
upx
#FA541D
;
box-shadow
:
0
4
upx
12
upx
#FA541D
;
border-radius
:
12
upx
;
.amount{
.amount
{
color
:
#ffffff
;
}
.preferential
{
text{
.preferential
{
text
{
color
:
#ffffff
;
background
:
#ffffff
;
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
}
.part-bottom
{
.tip-text{
.part-bottom
{
.tip-text
{
background
:
linear-gradient
(
-45deg
,
#FCD25B
,
#FA541D
);
}
}
}
}
}
.list-box-2
{
.list-box-2
{
width
:
100%
;
align-items
:
center
;
.part-1{
.part-1
{
display
:
flex
;
align-items
:
center
;
width
:
90%
;
margin-top
:
24
upx
;
.text-bg-1{
.text-bg-1
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
...
...
@@ -568,14 +711,16 @@
background
:
linear-gradient
(
90deg
,
#FCD25B
0%
,
#FA541D
100%
);
border-radius
:
14
rpx
;
margin-right
:
10
upx
;
text{
text
{
font-weight
:
normal
;
font-size
:
20
rpx
;
color
:
#FFFFFF
;
font-style
:
italic
;
}
}
.text-2
{
.text-2
{
font-weight
:
normal
;
font-size
:
32
rpx
;
color
:
#FA561E
;
...
...
@@ -584,95 +729,113 @@
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
.text-3
{
.text-3
{
font-weight
:
400
;
font-size
:
20
rpx
;
color
:
#999999
;
font-style
:
italic
;
}
}
.part-2
{
.part-2
{
position
:
relative
;
width
:
90%
;
margin-top
:
24
upx
;
.img-bg{
.img-bg
{
display
:
block
;
width
:
100%
;
max-height
:
160
upx
;
}
.absolute
{
.absolute
{
display
:
flex
;
flex-direction
:
row
;
.flex-5{
.flex-5
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
width
:
67%
;
height
:
100%
;
padding-left
:
24
upx
;
.flex-row{
.flex-row
{
align-items
:
flex-end
;
font-weight
:
bold
;
.text-1{
.text-1
{
color
:
#FE2E2E
;
font-size
:
42
upx
;
}
.text-2
{
.text-2
{
color
:
#333333
;
font-size
:
34
upx
;
margin-bottom
:
2
upx
;
}
}
.text-3
{
.text-3
{
font-weight
:
400
;
font-size
:
24
rpx
;
color
:
#A59079
;
margin-top
:
12
upx
;
}
}
.flex-3
{
.flex-3
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
align-items
:
center
;
flex
:
1
;
height
:
100%
;
.flex-row{
.flex-row
{
align-items
:
flex-end
;
.text-1{
.text-1
{
color
:
#D27E1F
;
font-size
:
32
upx
;
margin-bottom
:
6
upx
;
}
.text-2
{
.text-2
{
color
:
#D27E1F
;
font-size
:
56
upx
;
font-weight
:
bold
;
}
.text-3
{
.text-3
{
color
:
#D27E1F
;
font-size
:
32
upx
;
margin-bottom
:
6
upx
;
}
}
.cu-btn-box
{
.cu-btn-box
{
margin-top
:
10
upx
;
.cu-btn{
.cu-btn
{
padding
:
0
20
upx
;
height
:
40
upx
;
border-radius
:
20
upx
;
font-size
:
24
upx
;
color
:
#ffffff
;
}
.bg-pink
{
.bg-pink
{
background
:
#FA561E
;
}
}
}
}
}
.rule-tip
{
.rule-tip
{
margin
:
24
upx
0
20
upx
;
}
}
...
...
@@ -697,12 +860,14 @@
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
margin-top
:
34
upx
;
margin-top
:
34
upx
;
text
{
font-weight
:
normal
;
font-size
:
24
rpx
;
color
:
#777777
;
}
.text-pink
{
margin
:
0
6
upx
;
font-size
:
24
rpx
;
...
...
@@ -726,4 +891,83 @@
width
:
100%
;
padding
:
30
upx
;
}
.prefer-box-list
{
display
:
flex
;
flex-wrap
:
wrap
;
width
:
98%
;
margin
:
24
upx
auto
0
;
.list-item
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
align-items
:
center
;
width
:
20%
;
padding
:
20
upx
0
;
.img
{
display
:
block
;
width
:
72
upx
;
max-height
:
80
upx
;
}
.text-title
{
margin-top
:
8
upx
;
font-size
:
22
upx
;
color
:
#000000
;
background
:
linear-gradient
(
-90deg
,
#FF7800
0%
,
#FF0000
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
.text-slogan
{
margin-top
:
8
upx
;
font-weight
:
400
;
font-size
:
18
upx
;
color
:
#999999
;
}
}
}
.look-prefer-nav
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
margin-top
:
24
upx
;
.text-title
{
font-weight
:
normal
;
font-size
:
24
upx
;
color
:
#A59079
;
}
.img
{
display
:
block
;
width
:
16
upx
;
margin-left
:
10
upx
;
}
}
.rule-btn
{
position
:
fixed
;
right
:
0
;
top
:
14vh
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
42
upx
;
height
:
91
upx
;
background
:
rgba
(
0
,
0
,
0
,
0.23
);
border-radius
:
13
upx
;
z-index
:
90
;
text
{
font-weight
:
400
;
font-size
:
24
upx
;
color
:
#FFFDFD
;
writing-mode
:
horizontal-tb
;
text-align
:
center
;
}
}
</
style
>
\ No newline at end of file
setting/rule/rule.vue
0 → 100644
View file @
11667d02
<
template
>
<view
class=
"article"
>
<view
class=
"bg-box-1"
>
<view
class=
"bg-box-2"
>
<view
class=
"flex-row-center title-content"
>
<view
class=
"xx"
>
<image
:src=
"assetsPath+'/xx.png'"
mode=
"widthFix"
></image>
</view>
<view
class=
"title-text"
>
<view
class=
"text"
>
<text>
{{
article
.
protocolTitle
||
'规则'
}}
</text>
</view>
<view
class=
"line"
>
</view>
</view>
<view
class=
"xx"
>
<image
:src=
"assetsPath+'/xx.png'"
mode=
"widthFix"
></image>
</view>
</view>
<scroll-view
class=
"scroll-view"
scroll-y=
"true"
>
<view
class=
"scroll-view-content"
>
<view
class=
""
v-html=
"article.content"
>
</view>
</view>
</scroll-view>
</view>
</view>
</view>
</
template
>
<
script
>
import
config
from
"@/config/index.config"
;
import
{
getProtocol
}
from
"@/api/index.js"
;
export
default
{
data
()
{
return
{
assetsPath
:
config
.
assetsPath
,
article
:
{
protocolTitle
:
''
,
content
:
''
,
},
keyData
:
""
};
},
onLoad
(
option
)
{
if
(
option
&&
option
.
keyData
)
{
this
.
keyData
=
option
.
keyData
}
this
.
onLoading
()
},
methods
:
{
onLoading
()
{
getProtocol
(
this
.
keyData
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
data
.
code
)
{
uni
.
setNavigationBarTitle
({
title
:
res
.
data
.
data
.
protocolTitle
})
this
.
article
=
res
.
data
.
data
}
})
}
}
}
</
script
>
<
style
>
page
{
width
:
100%
;
height
:
100%
;
background-color
:
rgb
(
255
,
234
,
191
);
}
</
style
>
<
style
lang=
"scss"
>
.article
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
width
:
100vw
;
height
:
100%
;
}
.bg-box-1
{
display
:
flex
;
flex
:
1
;
flex-direction
:
column
;
justify-content
:
center
;
align-items
:
center
;
width
:
690
upx
;
background
:
#FFCA7E
;
border-radius
:
32
upx
;
padding
:
6px
0
;
margin
:
30
upx
0
40
upx
;
.bg-box-2
{
display
:
flex
;
height
:
98%
;
width
:
650
upx
;
flex-direction
:
column
;
align-items
:
center
;
background
:
linear-gradient
(
-42deg
,
#FFF5CB
,
#FFFFFF
);
border-radius
:
32
upx
;
.title-content
{
margin
:
24
upx
0
;
.title-text
{
display
:
flex
;
justify-content
:
center
;
position
:
relative
;
margin
:
0
20
upx
;
.text
{
position
:
relative
;
font-weight
:
normal
;
font-size
:
48
rpx
;
color
:
#000000
;
background
:
linear-gradient
(
-90deg
,
#FF7800
0%
,
#FF0000
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
z-index
:
2
;
}
.line
{
position
:
absolute
;
bottom
:
0
;
width
:
110%
;
height
:
15
upx
;
background
:
#FFEABF
;
border-radius
:
8
upx
;
}
}
.xx
{
width
:
30
upx
;
image
{
width
:
100%
;
max-height
:
34
upx
;
}
}
}
.scroll-view
{
display
:
flex
;
flex
:
1
;
position
:
relative
;
width
:
100%
;
overflow
:
hidden
;
.scroll-view-content
{
position
:
absolute
;
left
:
0
;
width
:
100%
;
padding
:
24
upx
;
}
}
}
}
</
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