Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
tea-resources-web
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
张伯涛
tea-resources-web
Commits
0723d45d
Commit
0723d45d
authored
Jun 27, 2024
by
张伯涛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
弱口令问题
parent
9b004b7d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
52 additions
and
66 deletions
+52
-66
reSetPsw.vue
src/views/reSetPsw.vue
+24
-13
index.vue
src/views/system/user/index.vue
+28
-53
No files found.
src/views/reSetPsw.vue
View file @
0723d45d
...
...
@@ -51,6 +51,24 @@ export default {
components
:
{},
props
:
{},
data
()
{
const
passwordCheck
=
(
rule
,
value
,
callback
)
=>
{
const
types
=
{
lower
:
/
[
a-z
]
+/
,
upper
:
/
[
A-Z
]
+/
,
number
:
/
[
0-9
]
+/
,
special
:
/
[\W
_
]
+/
}
let
matchCount
=
0
for
(
const
type
in
types
)
{
if
(
types
[
type
].
test
(
value
))
{
matchCount
++
}
}
if
(
matchCount
<
3
)
{
callback
(
new
Error
(
'密码必须包括数字、小写字母、大写字母和特殊符号4类中至少3类'
))
}
callback
()
}
return
{
userId
:
''
,
pwdList
:
{
...
...
@@ -63,7 +81,12 @@ export default {
{
required
:
true
,
trigger
:
'blur'
,
message
:
'请输入旧密码'
}
],
pass
:
[
{
validator
:
this
.
validatePass
,
trigger
:
'blur'
,
required
:
true
}
{
required
:
true
,
message
:
'请输入用户密码'
,
trigger
:
'blur'
},
{
min
:
8
,
max
:
20
,
message
:
'长度在 8 到 20 个字符'
,
trigger
:
'blur'
},
{
validator
:
passwordCheck
,
trigger
:
'blur'
}
],
checkPass
:
[
{
validator
:
this
.
validatePass2
,
trigger
:
'blur'
,
required
:
true
}
...
...
@@ -96,18 +119,6 @@ export default {
}
})
},
validatePass
(
rule
,
value
,
callback
)
{
if
(
value
===
''
)
{
callback
(
new
Error
(
'请输入密码'
))
}
else
{
const
pw_pattern
=
'^(?![A-Za-z]+$)(?![a-z
\\
W]+$)(?![A-Z
\\
W]+$)(?![0-9
\\
W]+$)[a-zA-Z0-9
\\
W]{6,20}$'
if
(
value
.
match
(
pw_pattern
))
{
callback
()
}
else
{
callback
(
new
Error
(
'6~20位,由字母和数字混合组成'
))
}
}
},
validatePass2
(
rule
,
value
,
callback
)
{
if
(
value
===
''
)
{
callback
(
new
Error
(
'请再次输入新密码'
))
...
...
src/views/system/user/index.vue
View file @
0723d45d
...
...
@@ -241,13 +241,16 @@
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
v-if=
"form.businessId == undefined || form.identity === '1'"
label=
"登录名:"
prop=
"username"
>
<el-form-item
v-if=
"form.businessId == undefined || form.identity === '1'"
label=
"登录名:"
prop=
"username"
>
<el-input
v-model=
"form.username"
:disabled=
"form.identity === '1'"
show-word-limit
maxlength=
"20"
placeholder=
"请输入登录名"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-if=
"form.businessId == undefined"
label=
"密码:"
prop=
"password"
>
<el-input
v-model=
"form.password"
placeholder=
"请输入密码"
type=
"password"
/>
<el-form-item
v-if=
"form.businessId == undefined"
label=
"状态:"
>
<el-radio-group
v-model=
"form.flag"
>
<el-radio
:label=
"1"
>
启用
</el-radio>
<el-radio
:label=
"0"
>
停用
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -267,55 +270,16 @@
/>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="昵称:" prop="nickName">
<el-input v-model="form.nickName" maxlength="50" placeholder="请输入用户昵称" />
</el-form-item>
</el-col>-->
</el-row>
<!-- <el-row>
<!– <el-col :span="12">
<el-form-item label="性别:">
<el-select v-model="form.sex" placeholder="请选择">
<el-option
v-for="dict in sexOptions"
:key="dict.dictValue"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>–>
<el-col :span="12">
<el-form-item label="手机号码:" prop="phone">
<el-input
v-model.trim="form.phone"
value="phone"
placeholder="请输入手机号码"
maxlength="11"
/>
</el-form-item>
</el-col>
</el-row>-->
<!-- <el-row>
<el-col :span="12">
<el-form-item label="身份证号:" prop="idNumber">
<el-input v-model.trim="form.idNumber" placeholder="请输入身份证号" maxlength="18" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱:" prop="email">
<el-input v-model.trim="form.email" placeholder="请输入邮箱" maxlength="25" />
</el-form-item>
</el-col>
</el-row>-->
<el-row>
<el-col
:span=
"12"
>
<el-form-item
v-if=
"form.businessId == undefined"
label=
"状态:"
>
<el-radio-group
v-model=
"form.flag"
>
<el-radio
:label=
"1"
>
启用
</el-radio>
<el-radio
:label=
"0"
>
停用
</el-radio>
</el-radio-group>
<el-col
:span=
"24"
>
<el-form-item
v-if=
"form.businessId == undefined"
label=
"密码:"
prop=
"password"
>
<el-input
v-model=
"form.password"
placeholder=
"请输入密码"
/>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -410,7 +374,7 @@
autocomplete=
"off"
auto-complete=
"off"
:type=
"pwdType"
placeholder=
"请输入
6~20位,由字母和数字混合所组成的
新密码"
placeholder=
"请输入新密码"
:maxlength=
"20"
>
<svg-icon
...
...
@@ -468,7 +432,7 @@ import { getToken } from '@/utils/auth'
import
{
listAllDept
,
treeSelect
}
from
'@/api/system/dept'
import
TreeSelect
from
'@riophae/vue-treeselect'
import
'@riophae/vue-treeselect/dist/vue-treeselect.css'
import
{
getListRole
,
getListRoleOld
}
from
'@/api/system/role'
import
{
getListRole
,
getListRoleOld
}
from
'@/api/system/role'
import
{
getDataCache
,
setDataCache
}
from
'@/assets/js/filterData'
import
commonField
from
'@/utils/commonField'
import
ElImageViewer
from
'element-ui/packages/image/src/image-viewer'
...
...
@@ -485,9 +449,20 @@ export default {
callback
()
}
const
passwordCheck
=
(
rule
,
value
,
callback
)
=>
{
const
pattern
=
/^
(?![
0-9
]
+$
)(?![
a-zA-Z
]
+$
)[
0-9A-Za-z
]{6,20}
$/
if
(
!
pattern
.
test
(
value
))
{
callback
(
new
Error
(
'新密码必须为数字与字母的组合'
))
const
types
=
{
lower
:
/
[
a-z
]
+/
,
upper
:
/
[
A-Z
]
+/
,
number
:
/
[
0-9
]
+/
,
special
:
/
[\W
_
]
+/
}
let
matchCount
=
0
for
(
const
type
in
types
)
{
if
(
types
[
type
].
test
(
value
))
{
matchCount
++
}
}
if
(
matchCount
<
3
)
{
callback
(
new
Error
(
'密码必须包括数字、小写字母、大写字母和特殊符号4类中至少3类'
))
}
callback
()
}
...
...
@@ -637,7 +612,7 @@ export default {
],
password
:
[
{
required
:
true
,
message
:
'请输入用户密码'
,
trigger
:
'blur'
},
{
min
:
6
,
max
:
20
,
message
:
'长度在 6
到 20 个字符'
,
trigger
:
'blur'
},
{
min
:
8
,
max
:
20
,
message
:
'长度在 8
到 20 个字符'
,
trigger
:
'blur'
},
{
validator
:
passwordCheck
,
trigger
:
'blur'
...
...
@@ -657,7 +632,7 @@ export default {
],
newPassword
:
[
{
required
:
true
,
message
:
'请输入密码'
,
trigger
:
'blur'
},
{
min
:
6
,
max
:
20
,
message
:
'长度在 6
到 20 个字符'
,
trigger
:
'blur'
},
{
min
:
8
,
max
:
20
,
message
:
'长度在 8
到 20 个字符'
,
trigger
:
'blur'
},
{
validator
:
passwordCheck
,
trigger
:
'blur'
}
],
phone
:
[
...
...
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