Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
X
XiTianSenMall
Project
Project
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
leiqingsong
XiTianSenMall
Commits
a34a4e57
Commit
a34a4e57
authored
Mar 09, 2021
by
leiqingsong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev_xll' into 'master'
Dev xll See merge request
!18
parents
ff9a4c43
4b9d640d
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
215 additions
and
34 deletions
+215
-34
grade.js
H5/src/api/grade.js
+11
-0
user.js
H5/src/api/user.js
+17
-1
grade.js
H5/src/config/grade.js
+33
-0
vant-ui.js
H5/src/plugins/vant-ui.js
+4
-2
grade.vue
H5/src/views/grade.vue
+43
-12
register.vue
H5/src/views/register.vue
+107
-19
No files found.
H5/src/api/grade.js
View file @
a34a4e57
...
...
@@ -10,3 +10,14 @@ export function getMyTeam(userId) {
method
:
"get"
});
}
/**
* 森林状态
* @param {*}
*/
export
function
getForestStatus
(
userId
)
{
return
request
({
url
:
`/user/forestStatus?userId=
${
userId
}
`
,
method
:
"get"
});
}
H5/src/api/user.js
View file @
a34a4e57
import
request
from
"@/utils/request"
;
import
qs
from
"qs"
;
// 登录
export
function
Login
()
{
return
request
({
...
...
@@ -7,3 +7,19 @@ export function Login() {
method
:
"get"
});
}
/**
* 发送验证码
* @param {*} params userId required 手机号
* @param {*} param sms required 验证码
* @param {*} param beInvitedCode required 邀请码
* @returns
*/
export
function
register
(
params
)
{
const
final_params
=
qs
.
stringify
(
params
);
return
request
({
url
:
"/api/user/register"
,
method
:
"post"
,
data
:
final_params
});
}
H5/src/config/grade.js
0 → 100644
View file @
a34a4e57
const
levels
=
{
0
:
"普通用户"
,
1
:
"幼苗"
,
2
:
"青铜树"
,
3
:
"白银树"
,
4
:
"黄金树"
,
5
:
"农场主"
,
6
:
"森林之星"
,
7
:
"西田森合伙人"
};
export
function
getLevelDes
(
level
)
{
const
label
=
levels
[
level
];
if
(
label
)
{
return
label
;
}
else
{
return
""
;
}
}
export
function
getNextLevel
(
level
)
{
let
nextLevel
=
0
;
let
isHighest
=
false
;
if
(
level
||
level
!==
0
)
{
nextLevel
=
level
+
1
;
if
(
nextLevel
===
8
)
{
isHighest
=
true
;
}
}
return
{
level
:
level
,
nextLevel
:
nextLevel
,
isHighest
:
isHighest
};
}
H5/src/plugins/vant-ui.js
View file @
a34a4e57
...
...
@@ -20,7 +20,8 @@ import {
Tabs
,
Toast
,
Uploader
,
Progress
Progress
,
Loading
}
from
"vant"
;
Vue
.
use
(
Button
)
...
...
@@ -43,4 +44,5 @@ Vue.use(Button)
.
use
(
Tabs
)
.
use
(
Uploader
)
.
use
(
Progress
)
.
use
(
Toast
);
.
use
(
Toast
)
.
use
(
Loading
);
H5/src/views/grade.vue
View file @
a34a4e57
...
...
@@ -10,15 +10,13 @@
<span
class=
"nav-title"
>
森林状态
</span>
</div>
<div
class=
"forest-content"
>
<div
class=
"forest-level"
>
{{
level
}}
</div>
<div
class=
"forest-level"
>
Lv.
{{
userLevel
}}{{
levelDes
}}
</div>
<div
class=
"nums"
>
距离下一级直推用户还需增加
{{
directpush
}}
</div>
<div
class=
"nums"
>
距离下一级团队用户还需增加
{{
team
}}
</div>
<div
class=
"level-progress"
>
<div
class=
"level-num"
>
{{
current
Level
}}
</div>
<div
class=
"level-num"
>
Lv.
{{
user
Level
}}
</div>
<van-progress
:percentage=
"50"
/>
<div
class=
"level-num"
>
{{
nextLevel
}}
</div>
<div
class=
"level-num"
>
Lv.
{{
nextLevel
}}
</div>
</div>
<div
class=
"relegation"
>
保级还需增加¥
{{
relegationNum
}}
业绩
</div>
</div>
...
...
@@ -41,44 +39,77 @@
</
template
>
<
script
>
import
{
getForestStatus
}
from
"@/api/grade"
;
import
{
getLevelDes
,
getNextLevel
}
from
"@/config/grade"
;
export
default
{
name
:
"grade"
,
data
()
{
return
{
level
:
"Lv.3白银树"
,
userLevel
:
""
,
levelDes
:
"白银树"
,
directpush
:
"XXX"
,
team
:
"XXX"
,
relegationNum
:
"21,141"
,
currentLevel
:
"
Lv.3
"
,
nextLevel
:
"
Lv.4
"
,
currentLevel
:
""
,
nextLevel
:
""
,
list
:
[
{
num
:
14
,
label
:
"团队总人数"
,
hasArrow
:
true
,
urlName
:
"LeagueNums"
urlName
:
"LeagueNums"
,
field
:
"teamUserCount"
},
{
num
:
12
,
label
:
"我的直推"
,
hasArrow
:
true
hasArrow
:
true
,
field
:
"recommendUserCount"
},
{
num
:
61859
,
label
:
"团队累计总业绩"
,
hasArrow
:
false
hasArrow
:
false
,
field
:
"teamCountDouble"
},
{
num
:
11256
,
label
:
"团队当月新增业绩"
,
hasArrow
:
false
hasArrow
:
false
,
field
:
"teamNowCount"
}
]
};
},
mounted
()
{
this
.
getstatus
()
},
methods
:
{
handleUrl
(
urlName
)
{
this
.
$router
.
push
({
name
:
urlName
});
},
getstatus
()
{
const
userId
=
13933770749
;
const
_this
=
this
;
getForestStatus
(
userId
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
let
resData
=
res
.
data
;
_this
.
handleData
(
resData
);
}
else
{
_this
.
$toast
.
fail
(
res
.
msg
);
}
});
},
handleData
(
data
)
{
this
.
userLevel
=
data
.
userLevel
;
this
.
levelDes
=
getLevelDes
(
data
.
userLevel
);
let
nextLevelObj
=
getNextLevel
(
data
.
userLevel
);
if
(
!
nextLevelObj
.
isHighest
)
{
this
.
nextLevel
=
nextLevelObj
.
nextLevel
;
}
this
.
list
.
forEach
(
v
=>
{
v
.
num
=
data
[
v
[
'field'
]]
})
}
}
};
...
...
H5/src/views/register.vue
View file @
a34a4e57
...
...
@@ -5,10 +5,9 @@
<div
class=
"form-content"
>
<van-cell-group>
<van-field
:value=
"value
"
v-model=
"form.userId
"
placeholder=
"请输入用户名"
:border=
"hasBorder"
bind:change=
"onChange"
>
<img
class=
"icon-user"
...
...
@@ -18,10 +17,9 @@
/>
</van-field>
<van-field
:value=
"value
"
v-model=
"form.sms
"
placeholder=
"请输入验证码"
:border=
"hasBorder"
bind:change=
"onChange"
>
<img
class=
"icon-user"
...
...
@@ -34,14 +32,17 @@
size=
"small"
type=
"primary"
class=
"verify-code"
>
发送验证码
</van-button
:disabled=
"disabled"
@
click=
"sendSms"
>
<span
v-if=
"!disabled"
>
发送验证码
</span>
<span
v-else
>
{{
time
}}
秒后重新发送
</span>
</van-button>
</van-field>
<van-field
:value=
"valu
e"
v-model=
"form.beInvitedCod
e"
placeholder=
"请输入推荐人邀请码(非必填)"
:border=
"hasBorder"
bind:change=
"onChange"
>
<img
class=
"icon-user"
...
...
@@ -51,36 +52,123 @@
/>
</van-field>
</van-cell-group>
<van-button
class=
"btn-submit"
@
click=
"register"
>
注册
</van-button>
<van-button
class=
"btn-submit"
:disabled=
"registerBtnDisabled"
@
click=
"handleResister"
>
注册
</van-button>
</div>
<van-overlay
:show=
"show"
class-name=
"registerEorr"
@
click=
"onClickHide"
>
<div
class=
"wrapper"
@
click
.
stop
>
<div
class=
"title"
>
{{
title
}}
</div>
<div
class=
"error-tip"
></div>
<div
class=
"tip"
>
{{
tip
}}
</div>
<van-button>
确定
</van-button>
<van-button
@
click=
"show = false"
>
确定
</van-button>
</div>
</van-overlay>
</div>
</
template
>
<
script
>
import
{
smsCode
}
from
"@/api/base"
;
import
{
register
}
from
"@/api/user"
;
export
default
{
name
:
"register"
,
data
()
{
return
{
form
:
{
userId
:
""
,
sms
:
""
,
beInvitedCode
:
""
},
disabled
:
false
,
registerBtnDisabled
:
false
,
sendMsg
:
"发送验证码"
,
value
:
""
,
hasBorder
:
false
,
show
:
tru
e
,
show
:
fals
e
,
title
:
"注册失败"
,
tip
:
"该推荐人邀请码不存在,请重新填写"
tip
:
""
,
time
:
60
,
timer
:
null
};
},
mounted
()
{
if
(
this
.
timer
)
{
clearInterval
(
this
.
timer
);
}
},
methods
:
{
register
()
{
// this.show = true
},
onClickHide
()
{
this
.
show
=
false
;
},
sendSms
()
{
const
_this
=
this
;
if
(
_this
.
timer
)
{
return
false
;
}
// 校验手机号
let
phoneReg
=
/^
(
0|86|17951
)?(
13
[
0-9
]
|15
[
012356789
]
|17
[
0-9
]
|18
[
0-9
]
|14
[
57
])[
0-9
]{8}
$/
;
//如果手机号码输入为空
if
(
!
_this
.
form
.
userId
)
{
_this
.
$toast
(
"请输入手机号"
);
return
false
;
}
//验证输入的电话号码是否是11位数字
if
(
!
phoneReg
.
test
(
_this
.
form
.
userId
))
{
_this
.
$toast
(
"请输入正确手机号"
);
return
false
;
}
_this
.
time
=
60
;
_this
.
disabled
=
true
;
// _this.handelSendSmsApi();
_this
.
timer
=
setInterval
(()
=>
{
if
(
_this
.
time
===
0
)
{
clearInterval
(
_this
.
timer
);
_this
.
disabled
=
false
;
}
_this
.
time
--
;
},
1000
);
},
handelSendSmsApi
()
{
// 检验手机号
const
params
=
{
codeType
:
0
,
phone
:
this
.
userId
};
smsCode
(
params
).
then
(
res
=>
{
console
.
log
(
res
);
});
},
handleResister
()
{
// 校验文本框必填项
const
_this
=
this
;
if
(
!
_this
.
form
.
userId
)
{
this
.
$toast
(
"请输入用户名"
);
return
false
;
}
if
(
!
_this
.
form
.
sms
)
{
this
.
$toast
(
"请输入验证码"
);
return
false
;
}
_this
.
registerBtnDisabled
=
true
;
this
.
$toast
.
loading
({
duration
:
5000
,
// 持续展示 toast
message
:
"加载中..."
,
forbidClick
:
true
});
register
(
_this
.
form
).
then
(
res
=>
{
this
.
$toast
.
clear
();
_this
.
registerBtnDisabled
=
false
;
if
(
res
.
code
===
0
)
{
_this
.
$toast
.
sucess
(
res
.
msg
);
}
else
{
_this
.
show
=
true
;
_this
.
tip
=
res
.
msg
;
// _this.$toast.fail(res.msg);
}
});
}
}
};
...
...
@@ -96,10 +184,10 @@ export default {
position
:
absolute
;
left
:
15px
;
top
:
9px
;
// display: block;
// font-size: 25
px;
//
color: #333;
// margin: 13px 0 0 15px;
&
:
:
before
{
font-size
:
20
px
;
color
:
#333
;
}
}
.logo-img
{
width
:
102px
;
...
...
@@ -109,7 +197,7 @@ export default {
}
.form-content
{
padding
:
0
15px
;
.van-field__left-icon
{
::v-deep
.van-field__left-icon
{
display
:
flex
;
align-items
:
center
;
}
...
...
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