Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
d87f1649
Commit
d87f1649
authored
Apr 14, 2021
by
季圣华
Browse files
去掉多余的文件
parent
1043ee9b
Changes
104
Hide whitespace changes
Inline
Side-by-side
jshERP-web/src/views/system/modules/UserRecycleBinModal.vue
deleted
100644 → 0
View file @
1043ee9b
<
template
>
<a-modal
:width=
"1000"
:title=
"title"
:visible=
"innerVisible"
@
cancel=
"handleCancel"
cancelText=
"关闭"
:okButtonProps=
"
{style:{display:'none'}}"
>
<a-alert
type=
"info"
showIcon
style=
"margin-bottom: 16px;"
>
<template
slot=
"message"
>
<span>
已选择
</span>
<a
style=
"font-weight: 600;padding: 0 4px;"
>
{{
selectedRowKeys
.
length
}}
</a>
<span>
项
</span>
<template
v-if=
"selectedRowKeys.length>0"
>
<a-divider
type=
"vertical"
/>
<a
@
click=
"handleClearSelection"
>
清空选择
</a>
<a-divider
type=
"vertical"
/>
<a
@
click=
"handleRevertBatch"
>
批量还原
</a>
<a-divider
type=
"vertical"
/>
<a
@
click=
"handleDeleteBatch"
>
批量删除
</a>
</
template
>
</template>
</a-alert>
<a-table
ref=
"table"
rowKey=
"id"
size=
"middle"
bordered
:columns=
"columns"
:loading=
"loading"
:dataSource=
"dataSource"
:pagination=
"false"
:rowSelection=
"{selectedRowKeys, onChange: handleTableSelectChange}"
>
<!-- 显示头像 -->
<
template
slot=
"avatarslot"
slot-scope=
"text, record, index"
>
<div
class=
"anty-img-wrap"
>
<a-avatar
shape=
"square"
:src=
"url.getAvatar(record.avatar)"
icon=
"user"
/>
</div>
</
template
>
<span
slot=
"action"
slot-scope=
"text, record"
>
<a
@
click=
"handleRevert([record.id])"
><a-icon
type=
"redo"
/>
还原用户
</a>
<a-divider
type=
"vertical"
/>
<a
@
click=
"handleDelete([record.id])"
><a-icon
type=
"delete"
/>
彻底删除
</a>
</span>
</a-table>
</a-modal>
</template>
<
script
>
import
{
putAction
,
deleteAction
,
getFileAccessHttpUrl
}
from
"
@/api/manage
"
// 高度封装的请求,请务必使用 superRequest.call(this,{}) 的方式调用
function
superRequest
(
options
)
{
this
.
loading
=
!!
options
.
loading
options
.
promise
.
then
(
res
=>
{
if
(
res
.
success
&&
typeof
options
.
success
===
'
function
'
)
{
options
.
success
(
res
)
}
else
{
throw
new
Error
(
res
.
message
)
}
}).
catch
(
e
=>
{
console
.
error
(
'
查询已删除的用户失败:
'
,
e
)
this
.
$message
.
warning
(
'
查询已删除的用户失败:
'
+
(
e
.
message
||
e
))
}).
finally
(()
=>
{
this
.
loading
=
false
})
}
export
default
{
name
:
'
UserRecycleBinModal
'
,
props
:
{
visible
:
{
type
:
Boolean
,
default
:
false
},
},
data
()
{
return
{
title
:
'
用户回收站
'
,
loading
:
false
,
innerVisible
:
false
,
selectedRowKeys
:
[],
dataSource
:
[],
columns
:
[
{
title
:
'
#
'
,
align
:
'
center
'
,
key
:
'
rowIndex
'
,
width
:
80
,
customRender
:
(
t
,
r
,
i
)
=>
i
+
1
},
{
title
:
'
账号
'
,
align
:
'
center
'
,
dataIndex
:
'
username
'
},
{
title
:
'
姓名
'
,
align
:
'
center
'
,
dataIndex
:
'
realname
'
,
},
{
title
:
'
头像
'
,
align
:
'
center
'
,
dataIndex
:
'
avatar
'
,
scopedSlots
:
{
customRender
:
'
avatarslot
'
}
},
{
title
:
'
部门
'
,
align
:
'
center
'
,
dataIndex
:
'
orgCode
'
},
{
title
:
'
操作
'
,
align
:
'
center
'
,
dataIndex
:
'
action
'
,
width
:
200
,
scopedSlots
:
{
customRender
:
'
action
'
}
}
],
url
:
{
getAvatar
:
(
path
)
=>
getFileAccessHttpUrl
(
`
${
path
}
`
),
// 回收站操作,get = 获取列表;put = 取回;delete = 彻底删除
recycleBin
:
'
/sys/user/recycleBin
'
,
putRecycleBin
:
'
/sys/user/putRecycleBin
'
,
deleteRecycleBin
:
'
/sys/user/deleteRecycleBin
'
,
},
}
},
watch
:
{
visible
:
{
immediate
:
true
,
handler
(
val
)
{
if
(
val
)
{
this
.
loadData
()
}
this
.
innerVisible
=
val
}
},
innerVisible
(
val
)
{
this
.
$emit
(
'
update:visible
'
,
val
)
},
},
methods
:
{
loadData
()
{
superRequest
.
call
(
this
,
{
loading
:
true
,
promise
:
this
.
$http
.
get
(
this
.
url
.
recycleBin
),
success
:
res
=>
this
.
dataSource
=
res
.
result
})
},
handleOk
()
{
this
.
loadData
()
this
.
$emit
(
'
ok
'
)
},
handleCancel
()
{
this
.
innerVisible
=
false
},
// 还原用户
handleRevert
(
userIds
)
{
this
.
$confirm
({
title
:
'
恢复用户
'
,
content
:
`您确定要恢复这
${
userIds
.
length
}
个用户吗?`
,
centered
:
true
,
onOk
:
()
=>
{
putAction
(
this
.
url
.
putRecycleBin
,{
userIds
:
userIds
.
join
(
'
,
'
)}).
then
((
res
)
=>
{
if
(
res
.
success
){
this
.
handleOk
()
this
.
handleClearSelection
()
this
.
$message
.
success
(
`还原
${
userIds
.
length
}
个用户成功!`
)
}
})
}
})
},
// 彻底删除用户
handleDelete
(
userIds
)
{
this
.
$confirm
({
title
:
'
彻底删除用户
'
,
content
:
(
<
div
>
<
p
>
您确定要彻底删除这
{
userIds
.
length
}
个用户吗
?
<
/p
>
<
p
style
=
"
color:red;
"
>
注意
:
彻底删除后将无法恢复
,
请谨慎操作
!
<
/p
>
<
/div>
)
,
centered
:
true
,
onOk
:
()
=>
{
var
that
=
this
;
deleteAction
(
that
.
url
.
deleteRecycleBin
,
{
userIds
:
userIds
.
join
(
'
,
'
)}).
then
((
res
)
=>
{
if
(
res
.
success
)
{
this
.
loadData
()
this
.
handleClearSelection
()
this
.
$message
.
success
(
`彻底删除
${
userIds
.
length
}
个用户成功!`
)
}
else
{
that
.
$message
.
warning
(
res
.
message
);
}
});
},
})
},
handleRevertBatch
()
{
this
.
handleRevert
(
this
.
selectedRowKeys
)
},
handleDeleteBatch
()
{
this
.
handleDelete
(
this
.
selectedRowKeys
)
},
handleClearSelection
()
{
this
.
handleTableSelectChange
([],
[])
},
handleTableSelectChange
(
selectedRowKeys
,
selectionRows
)
{
this
.
selectedRowKeys
=
selectedRowKeys
this
.
selectionRows
=
selectionRows
},
}
}
</
script
>
<
style
lang=
"less"
scoped
></
style
>
\ No newline at end of file
jshERP-web/src/views/system/modules/UserRoleModal.vue
deleted
100644 → 0
View file @
1043ee9b
<
template
>
<a-drawer
:title=
"title"
:maskClosable=
"true"
width=
650
placement=
"right"
:closable=
"true"
@
close=
"close"
:visible=
"visible"
style=
"height: calc(100% - 55px);overflow: auto;padding-bottom: 53px;"
>
<a-form>
<a-form-item
label=
'所拥有的权限'
>
<a-tree
checkable
@
check=
"onCheck"
:checkedKeys=
"checkedKeys"
:treeData=
"treeData"
@
expand=
"onExpand"
@
select=
"onTreeNodeSelect"
:selectedKeys=
"selectedKeys"
:expandedKeys=
"expandedKeysss"
:checkStrictly=
"checkStrictly"
>
<span
slot=
"hasDatarule"
slot-scope=
"
{slotTitle,ruleFlag}">
{{
slotTitle
}}
<a-icon
v-if=
"ruleFlag"
type=
"align-left"
style=
"margin-left:5px;color: red;"
></a-icon>
</span>
</a-tree>
</a-form-item>
</a-form>
<div
class=
"drawer-bootom-button"
>
<a-dropdown
style=
"float: left"
:trigger=
"['click']"
placement=
"topCenter"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"switchCheckStrictly(1)"
>
父子关联
</a-menu-item>
<a-menu-item
key=
"2"
@
click=
"switchCheckStrictly(2)"
>
取消关联
</a-menu-item>
<a-menu-item
key=
"3"
@
click=
"checkALL"
>
全部勾选
</a-menu-item>
<a-menu-item
key=
"4"
@
click=
"cancelCheckALL"
>
取消全选
</a-menu-item>
<a-menu-item
key=
"5"
@
click=
"expandAll"
>
展开所有
</a-menu-item>
<a-menu-item
key=
"6"
@
click=
"closeAll"
>
合并所有
</a-menu-item>
</a-menu>
<a-button>
树操作
<a-icon
type=
"up"
/>
</a-button>
</a-dropdown>
<a-popconfirm
title=
"确定放弃编辑?"
@
confirm=
"close"
okText=
"确定"
cancelText=
"取消"
>
<a-button
style=
"margin-right: .8rem"
>
取消
</a-button>
</a-popconfirm>
<a-button
@
click=
"handleSubmit(false)"
type=
"primary"
:loading=
"loading"
ghost
style=
"margin-right: 0.8rem"
>
仅保存
</a-button>
<a-button
@
click=
"handleSubmit(true)"
type=
"primary"
:loading=
"loading"
>
保存并关闭
</a-button>
</div>
<role-datarule-modal
ref=
"datarule"
></role-datarule-modal>
</a-drawer>
</
template
>
<
script
>
import
{
queryTreeListForRole
,
queryRolePermission
,
saveRolePermission
}
from
'
@/api/api
'
import
RoleDataruleModal
from
'
./RoleDataruleModal.vue
'
export
default
{
name
:
"
RoleModal
"
,
components
:{
RoleDataruleModal
},
data
(){
return
{
roleId
:
""
,
treeData
:
[],
defaultCheckedKeys
:[],
checkedKeys
:[],
expandedKeysss
:[],
allTreeKeys
:[],
autoExpandParent
:
true
,
checkStrictly
:
true
,
title
:
"
角色权限配置
"
,
visible
:
false
,
loading
:
false
,
selectedKeys
:[]
}
},
methods
:
{
onTreeNodeSelect
(
id
){
if
(
id
&&
id
.
length
>
0
){
this
.
selectedKeys
=
id
}
this
.
$refs
.
datarule
.
show
(
this
.
selectedKeys
[
0
],
this
.
roleId
)
},
onCheck
(
o
)
{
if
(
this
.
checkStrictly
){
this
.
checkedKeys
=
o
.
checked
;
}
else
{
this
.
checkedKeys
=
o
}
},
show
(
roleId
){
this
.
roleId
=
roleId
this
.
visible
=
true
;
},
close
()
{
this
.
reset
()
this
.
$emit
(
'
close
'
);
this
.
visible
=
false
;
},
onExpand
(
expandedKeys
){
this
.
expandedKeysss
=
expandedKeys
;
this
.
autoExpandParent
=
false
},
reset
()
{
this
.
expandedKeysss
=
[]
this
.
checkedKeys
=
[]
this
.
defaultCheckedKeys
=
[]
this
.
loading
=
false
},
expandAll
()
{
this
.
expandedKeysss
=
this
.
allTreeKeys
},
closeAll
()
{
this
.
expandedKeysss
=
[]
},
checkALL
()
{
this
.
checkedKeys
=
this
.
allTreeKeys
},
cancelCheckALL
()
{
//this.checkedKeys = this.defaultCheckedKeys
this
.
checkedKeys
=
[]
},
switchCheckStrictly
(
v
)
{
if
(
v
==
1
){
this
.
checkStrictly
=
false
}
else
if
(
v
==
2
){
this
.
checkStrictly
=
true
}
},
handleCancel
()
{
this
.
close
()
},
handleSubmit
(
exit
)
{
let
that
=
this
;
let
params
=
{
roleId
:
that
.
roleId
,
permissionIds
:
that
.
checkedKeys
.
join
(
"
,
"
),
lastpermissionIds
:
that
.
defaultCheckedKeys
.
join
(
"
,
"
),
};
that
.
loading
=
true
;
console
.
log
(
"
请求参数:
"
,
params
);
saveRolePermission
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
){
that
.
$message
.
success
(
res
.
message
);
that
.
loading
=
false
;
if
(
exit
)
{
that
.
close
()
}
}
else
{
that
.
$message
.
error
(
res
.
message
);
that
.
loading
=
false
;
if
(
exit
)
{
that
.
close
()
}
}
this
.
loadData
();
})
},
loadData
(){
queryTreeListForRole
().
then
((
res
)
=>
{
this
.
treeData
=
res
.
result
.
treeList
this
.
allTreeKeys
=
res
.
result
.
ids
queryRolePermission
({
roleId
:
this
.
roleId
}).
then
((
res
)
=>
{
this
.
checkedKeys
=
[...
res
.
result
];
this
.
defaultCheckedKeys
=
[...
res
.
result
];
this
.
expandedKeysss
=
this
.
allTreeKeys
;
console
.
log
(
this
.
defaultCheckedKeys
)
})
})
}
},
watch
:
{
visible
()
{
if
(
this
.
visible
)
{
this
.
loadData
();
}
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</
style
>
\ No newline at end of file
jshERP-web/src/views/user/Register.vue
View file @
d87f1649
...
...
@@ -155,9 +155,9 @@
handlePasswordLevel
(
rule
,
value
,
callback
)
{
let
level
=
0
let
reg
=
/^
(?=
.*
[
a-z
A-Z
])(?=
.*
\d)
(?=
.*
[
~!@#$%^&*()_+`
\-
={}:";'<>?,.
/])
.
{8,}
$/
;
let
reg
=
/^
(?=
.*
[
a-z
])(?=
.*
\d)
.
{8,}
$/
;
if
(
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
'
密码由8位数字、
大
小写字母
和特殊符号
组成!
'
))
callback
(
new
Error
(
'
密码由8位数字、小写字母组成!
'
))
}
// 判断这个字符串中有没有数字
if
(
/
[
0-9
]
/
.
test
(
value
))
{
...
...
jshERP-web/src/views/user/RegisterResult.vue
deleted
100644 → 0
View file @
1043ee9b
<
template
>
<result
:isSuccess=
"true"
:content=
"false"
:title=
"email"
>
<template
slot=
"action"
>
<a-button
size=
"large"
style=
"margin-left: 8px"
@
click=
"goHomeHandle"
>
返回首页
</a-button>
</
template
>
</result>
</template>
<
script
>
import
Result
from
'
@/views/result/Result
'
export
default
{
name
:
"
RegisterResult
"
,
components
:
{
Result
},
data
()
{
return
{
form
:
{},
}
},
computed
:
{
email
()
{
let
v
=
this
.
form
?
this
.
form
.
username
||
this
.
form
.
mobile
:
'
XXX
'
let
title
=
`你的账户:
${
v
}
注册成功`
this
.
username
=
v
;
return
title
}
},
created
()
{
this
.
form
=
this
.
$route
.
params
},
methods
:
{
goHomeHandle
()
{
let
params
=
{};
params
.
username
=
this
.
form
.
username
;
params
.
password
=
this
.
form
.
password
;
console
.
log
(
params
);
this
.
$router
.
push
({
name
:
'
login
'
,
params
})
},
}
}
</
script
>
<
style
scoped
>
</
style
>
\ No newline at end of file
Prev
1
2
3
4
5
6
Next
Write
Preview
Supports
Markdown
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