Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
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
shenshaokai
jinfa-platform
Commits
a4ecb82b
Commit
a4ecb82b
authored
Feb 10, 2022
by
xiexiuxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:修改bug
parent
6b40df10
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
44 deletions
+47
-44
index.tsx
src/components/CheckBoxTree/index.tsx
+2
-14
memberDetail.tsx
src/pages/authConfig/memberSystem/memberDetail.tsx
+45
-30
No files found.
src/components/CheckBoxTree/index.tsx
View file @
a4ecb82b
...
...
@@ -13,7 +13,6 @@ export interface CheckboxTreeProps {
showSave
?;
disabled
?:
boolean
;
actions
?:
RefObject
<
any
>
;
btnId
:
any
;
}
const
CheckboxTree
:
React
.
FC
<
CheckboxTreeProps
>
=
props
=>
{
...
...
@@ -24,11 +23,8 @@ const CheckboxTree: React.FC<CheckboxTreeProps> = props => {
handleChange
,
disabled
,
showSave
,
btnId
=
[],
handleSubmit
,
}
=
props
;
const
checkedKeys
=
findTreeKeys
(
checkedNodes
,
'id'
);
const
{
selected
,
...
...
@@ -39,13 +35,13 @@ const CheckboxTree: React.FC<CheckboxTreeProps> = props => {
allSelected
,
unSelectAll
,
selectAll
,
}
=
useSelections
(
checkedKeys
,
[
...
btnId
]);
}
=
useSelections
(
checkedKeys
,
[]);
if
(
actions
)
{
actions
.
current
.
selected
=
selected
;
actions
.
current
.
setSelected
=
setSelected
;
actions
.
current
.
getSelected
=
()
=>
selected
;
}
const
toggleSelectAll
=
()
=>
{
checkChange
();
if
(
allSelected
)
{
...
...
@@ -54,17 +50,9 @@ const CheckboxTree: React.FC<CheckboxTreeProps> = props => {
selectAll
();
}
};
const
checkChange
=
(
e
?)
=>
{
handleChange
&&
handleChange
(
e
);
};
// useEffect(() => {
// console.log(btnId)
// // setSelected([...btnId])
// // actions.current.selected = btnId;
// setSelected([...btnId])
// }, [btnId])
return
(
<
div
>
{
title
&&
(
...
...
src/pages/authConfig/memberSystem/memberDetail.tsx
View file @
a4ecb82b
...
...
@@ -42,7 +42,6 @@ import FieldHeader from '@/components/FieldHeader';
import
OrgModal
from
'./orgModal'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
useTreeTabs
}
from
'@/hooks/useTreeTabs'
;
import
{
concat
}
from
'lodash'
;
const
intl
=
getIntl
();
const
pageTitles
=
[
`
${
intl
.
formatMessage
({
id
:
'authConfig.add'
})}
`
,
`
${
intl
.
formatMessage
({
id
:
'authConfig.edit'
})}
`
,
`
${
intl
.
formatMessage
({
id
:
'authConfig.previewLook'
})}
`
];
...
...
@@ -88,8 +87,6 @@ const getTreeNode = (treeData: any, targetNodeId: any) => {
const
MemberDetail
:
React
.
FC
<
{}
>
=
()
=>
{
const
intl
=
useIntl
();
const
[
form
]
=
Form
.
useForm
();
const
value
=
useContext
(
historyContainer
);
const
[
nodeRecord
,
setNodeRecord
]
=
useState
<
any
>
(
null
);
const
[
orgModalVisible
,
setOrgModalVisible
]
=
useState
(
false
);
const
[
treeExtraMaps
,
{
set
:
setButtonAuth
,
get
:
getButtonAuth
}]
=
useMap
<
...
...
@@ -107,6 +104,8 @@ const MemberDetail: React.FC<{}> = () => {
const
res
=
await
getMemberRoleAuthTree
({
memberRoleId
:
roleId
});
console
.
log
(
res
,
'res'
);
return
{
data
:
res
.
data
.
menus
};
},
[]);
...
...
@@ -132,11 +131,9 @@ const MemberDetail: React.FC<{}> = () => {
const
[
plateformTreeList
,
setplateformTreeList
]
=
useState
<
any
>
([])
// 存储默认勾选的id
const
[
checkIds
,
setcheckIds
]
=
useState
<
any
>
({});
const
[
btnId
,
setbtnId
]
=
useState
([]);
const
modalRef
=
useRef
<
any
>
({})
// 存储右边点击选中的数据权限id
const
[
dataId
,
setdataId
]
=
useState
<
any
>
([]);
const
disabledCheckAuthConfig
=
useMemo
(()
=>
{
if
(
nodeRecord
&&
authInfos
[
nodeRecord
.
id
])
{
return
authInfos
[
nodeRecord
.
id
]
as
{
...
...
@@ -194,10 +191,10 @@ const MemberDetail: React.FC<{}> = () => {
const
handleNodeSelected
=
async
(
selectKey
,
selectNode
)
=>
{
try
{
const
{
node
}
=
await
handleSelect
(
selectKey
,
selectNode
);
// actionRef.current.selected = node.buttonIds;
// actionRef.current.setSelected(node.buttonIds)
setbtnId
(
node
.
buttonIds
)
console
.
log
(
node
)
setcheckflag
(
treeActions
.
getSelectKeys
().
indexOf
(
selectKey
)
!=
-
1
)
console
.
log
(
node
.
buttonIds
,
'node.buttonIds'
)
actionRef
.
current
.
setSelected
(
node
.
buttonIds
)
if
(
nodeRecord
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
selectKey
!==
nodeRecord
.
key
)
{
...
...
@@ -228,6 +225,36 @@ const MemberDetail: React.FC<{}> = () => {
setcheckflag
(
checked
.
indexOf
(
nodeRecord
.
id
)
!=
-
1
?
true
:
false
)
}
}
// 中间点击时间
const
handleChange
=
(
e
)
=>
{
console
.
log
(
e
)
if
(
!
dataId
.
includes
(
nodeRecord
.
id
))
{
dataId
.
push
(
nodeRecord
.
id
)
setdataId
(
dataId
)
}
menuActions
.
submit
()
.
then
(
async
({
values
})
=>
{
actionRef
.
current
.
setSelected
(
actionRef
.
current
.
getSelected
())
setErrors
(
true
);
setAuthInfos
({
...
authInfos
,
[
nodeRecord
.
id
]:
Object
.
assign
(
{
...
authInfos
[
nodeRecord
.
id
]
},
{
buttonIds
:
await
actionRef
.
current
.
getSelected
()
?
await
actionRef
.
current
.
getSelected
()
:
[]
},
),
});
console
.
log
(
authInfos
)
})
.
catch
(
err
=>
{
// console.log(err);
if
(
Array
.
isArray
(
err
))
{
setErrors
(
true
);
}
});
}
// 编辑和预览模式下需回显数据
const
fetchRoleMenuDetail
=
async
id
=>
{
// 10秒缓存
...
...
@@ -253,24 +280,22 @@ const MemberDetail: React.FC<{}> = () => {
},
[]);
useEffect
(()
=>
{
// console.log(formInitValue)
if
(
formInitValue
)
{
if
(
actionRef
.
current
.
setSelected
)
{
actionRef
.
current
.
setSelected
();
}
//
if (actionRef.current.setSelected) {
//
actionRef.current.setSelected();
//
}
}
},
[
getButtonAuth
,
nodeRecord
]);
// 提交
const
handleSubmit
=
()
=>
{
menuActions
.
submit
()
.
then
(
async
({
values
})
=>
{
setErrors
(
false
);
// 如果未点击过操作权限tab, 则无法获取到actionRef实例, 需补充手动补充回显的ids, 新增的时候如果未设置按钮,则返回空数组
const
buttonCheckIds
=
actionRef
.
current
.
selected
||
(
formValue
&&
formValue
.
ids
)
||
[];
// 获取选中的树状 id
const
treeCheckIds
=
treeActions
.
getSelectKeys
();
// 把后台返回的数据处理成一个数组
...
...
@@ -318,15 +343,13 @@ const MemberDetail: React.FC<{}> = () => {
list
=
publicarr
.
filter
((
element
,
index
,
self
)
=>
{
return
self
.
findIndex
(
x
=>
x
.
menuId
===
element
.
menuId
)
===
index
})
// console.log(actionRef.current.selected)
const
publicParams
=
{
...
values
,
imFlag
:
!!
values
.
imFlag
,
// checked: treeCheckIds,
auth
:
(
flag
&&
dataId
.
length
===
0
)
?
[]
:
list
.
map
(
v
=>
({
menuId
:
v
.
menuId
,
// @todo 暂时写死为空
buttonIds
:
actionRef
.
current
.
selected
,
buttonIds
:
authInfos
[
v
.
menuId
].
buttonIds
?
authInfos
[
v
.
menuId
].
buttonIds
:
[],
checked
:
v
.
checked
,
hasDataAuth
:
authInfos
[
v
.
menuId
]?.
hasDataAuth
?
authInfos
[
v
.
menuId
]?.
hasDataAuth
:
0
,
orgIds
:
authInfos
[
v
.
menuId
]?.
hasDataAuth
?
authInfos
[
v
.
menuId
]?.
orgIds
:
[],
...
...
@@ -334,6 +357,7 @@ const MemberDetail: React.FC<{}> = () => {
};
delete
publicParams
.
checkIds
if
(
pageStatus
===
PageStatus
.
EDIT
)
{
await
postMemberRoleUpdate
({
memberRoleId
:
id
,
...
...
@@ -417,12 +441,8 @@ const MemberDetail: React.FC<{}> = () => {
{
orgIds
:
selectKeys
},
),
});
// console.log(plateformTreeData, 'plateformTreeData');
// console.log(selectKeys, 'selectKeys');
let
plateformTreeDataList
=
mapkey
(
plateformTreeData
,
selectKeys
,
[])
// console.log(plateformTreeDataList)
setplateformTreeList
(
plateformTreeDataList
)
// console.log(plateformTreeDataList, 'plateformTreeData')
setOrgModalVisible
(
false
);
};
const
handleOrgCancel
=
()
=>
{
...
...
@@ -500,7 +520,7 @@ const MemberDetail: React.FC<{}> = () => {
<
Col
span=
{
8
}
className=
{
styled
[
'menu-role-tree'
]
}
>
<
TabTree
title=
{
intl
.
formatMessage
({
id
:
'authConfig.menuAccess'
})
}
fetchData=
{
params
=>
fetchMenuData
()
}
fetchData=
{
fetchMenuData
}
checkable
actions=
{
treeActions
}
treeData=
{
treeData
}
...
...
@@ -517,7 +537,7 @@ const MemberDetail: React.FC<{}> = () => {
actions=
{
actionRef
}
disabled=
{
!
checkflag
}
checkedNodes=
{
buttonInfos
}
btnId=
{
btnId
}
handleChange=
{
handleChange
}
title=
{
intl
.
formatMessage
({
id
:
'authConfig.MenuInterfaceAccess'
})
}
/>
</
Col
>
...
...
@@ -538,11 +558,6 @@ const MemberDetail: React.FC<{}> = () => {
<
div
style=
{
{
marginTop
:
16
}
}
>
<
p
style=
{
{
color
:
'#909399'
}
}
>
{
intl
.
formatMessage
({
id
:
'authConfig.OrganizationAuthorization'
})
}
</
p
>
{
plateformTreeList
.
map
(
v
=>
{
//
//
{
disabledCheckAuthConfig
.
orgIds
.
map
(
v
=>
{
// const node = getTreeNode(plateformTreeData, v);
// // console.log(node, '1111')
// if (!node || !node.id) return null;
return
(
<
div
className=
"org-tag-container"
key=
{
v
.
id
}
>
<
Tag
color=
{
'#F4F5F7'
}
className=
"org-tag"
>
...
...
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