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
b412ed8e
Commit
b412ed8e
authored
Jun 23, 2021
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-srm' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev-srm
parents
1287d6ae
31580809
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
76 additions
and
21 deletions
+76
-21
CustomRelevance.tsx
src/components/NiceForm/components/CustomRelevance.tsx
+0
-1
detail.tsx
src/pages/channel/memberList/detail.tsx
+73
-18
index.tsx
src/pages/channel/memberList/index.tsx
+3
-2
No files found.
src/components/NiceForm/components/CustomRelevance.tsx
View file @
b412ed8e
...
...
@@ -80,7 +80,6 @@ const Relevance = props => {
}
setVisible
(
true
);
};
return
(
<
RowStyleLayout
>
<
Input
...
...
src/pages/channel/memberList/detail.tsx
View file @
b412ed8e
...
...
@@ -76,11 +76,13 @@ const fetchMemberAbilitySelect = async (params) => {
const
MemberDetail
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
staticData
=
useRef
<
any
>
([])
const
[
rowSelection
,
rowCtl
]
=
useRowSelectionTable
({
customKey
:
'memberId'
})
const
[
realRowSelection
,
realRowCtl
]
=
useRowSelectionTable
({
customKey
:
'relationId'
})
const
[
memberVisible
,
setMemberVisible
]
=
useState
(
false
)
const
{
pageStatus
,
id
}
=
usePageStatus
()
const
[
tableData
,
setTableData
]
=
useState
<
any
[]
>
([])
const
[
keywordName
,
setKeywordName
]
=
useState
<
string
>
(
''
)
const
fetchMemberSaleChannel
=
async
(
params
)
=>
{
const
userInfo
=
formAction
.
getFieldValue
(
'userId'
)
if
(
userInfo
&&
userInfo
.
length
>
0
)
{
...
...
@@ -97,25 +99,40 @@ const MemberDetail: React.FC<{}> = () => {
return
[]
}
}
useEffect
(()
=>
{
PublicApi
.
getMemberAbilitySalesGet
({
userId
:
id
if
(
id
)
{
fetchSaleChannel
()
}
},
[
id
])
const
fetchSaleChannel
=
async
()
=>
{
PublicApi
.
getMemberAbilitySalesChannel
({
userId
:
id
,
current
:
'1'
,
pageSize
:
'20'
,
name
:
keywordName
,
}).
then
((
res
)
=>
{
if
(
res
.
code
===
1000
)
{
formAction
.
setFieldValue
(
'userId'
,
[
res
.
data
])
// 添加一个remote标识, 带有此标识的 将会调用接口解绑
setTableData
(
res
.
data
.
data
.
map
(
v
=>
({...
v
,
isRemote
:
true
})))
}
})
}
,
[
id
])
}
useEffect
(()
=>
{
if
(
tableData
.
length
>
0
)
{
rowCtl
.
setSelectedRowKeys
(
tableData
.
map
(
v
=>
v
.
memberId
))
}
staticData
.
current
=
realRowCtl
.
selectedRowKeys
},
[
realRowCtl
.
selectedRowKeys
])
useEffect
(()
=>
{
rowCtl
.
setSelectedRowKeys
(
tableData
.
map
(
v
=>
v
.
memberId
))
rowCtl
.
setSelectRow
([...
tableData
])
realRowCtl
.
setSelectedRowKeys
(
tableData
.
filter
(
v
=>
!
staticData
.
current
.
includes
(
v
)))
},
[
tableData
])
const
cacelConnect
=
(
record
)
=>
{
unBindMember
(
record
.
memberId
)
unBindMember
(
record
)
}
const
abilityColumns
:
any
[]
=
[
...
...
@@ -200,8 +217,8 @@ const MemberDetail: React.FC<{}> = () => {
title
:
'操作'
,
align
:
'center'
,
render
:
(
_
,
record
)
=>
{
return
<
Popconfirm
title=
'确定要解除吗'
onConfirm=
{
()
=>
cacelConnect
(
record
)
}
>
<
Button
type=
'link'
>
解除绑定关系
</
Button
>
return
<
Popconfirm
disabled=
{
pageStatus
===
PageStatus
.
PREVIEW
}
title=
'确定要解除吗'
onConfirm=
{
()
=>
cacelConnect
(
record
)
}
>
<
Button
type=
'link'
disabled=
{
pageStatus
===
PageStatus
.
PREVIEW
}
>
解除绑定关系
</
Button
>
</
Popconfirm
>
}
}
...
...
@@ -258,27 +275,64 @@ const MemberDetail: React.FC<{}> = () => {
return
userInfo
&&
userInfo
.
length
>
0
}
const
unBindMember
=
async
(
id
?)
=>
{
const
unBindMember
=
async
(
options
?)
=>
{
const
relationIds
=
[]
if
(
options
)
{
// 单选
const
{
relationId
,
isRemote
}
=
options
if
(
pageStatus
===
PageStatus
.
ADD
||
!
isRemote
)
{
// 新增或者编辑时是未保存状态的渠道业务员则无需调用接口 直接删除
setTableData
(
d
=>
d
.
filter
(
v
=>
v
.
relationId
!==
relationId
))
return
false
}
relationIds
.
push
(
relationId
)
}
else
{
// 批量
if
(
pageStatus
===
PageStatus
.
ADD
)
{
// 新增情况下 删除本地数据
setTableData
(
d
=>
{
return
d
.
filter
(
v
=>
!
realRowCtl
.
selectedRowKeys
.
includes
(
v
.
relationId
))
})
return
false
}
const
localRow
=
realRowCtl
.
selectRow
.
filter
(
v
=>
!
v
.
isRemote
)
const
localRowKey
=
localRow
.
map
(
v
=>
v
.
relationId
)
const
remoteRowKey
=
realRowCtl
.
selectRow
.
filter
(
v
=>
v
.
isRemote
).
map
(
v
=>
v
.
relationId
)
setTableData
(
d
=>
{
return
d
.
filter
(
v
=>
!
localRow
.
find
(
l
=>
l
.
relationId
===
v
.
relationId
))
})
if
(
remoteRowKey
.
length
===
0
)
{
clearRealRowCtl
(
localRowKey
)
return
false
}
relationIds
.
push
(...
remoteRowKey
)
}
if
(
validateMember
())
{
const
userInfo
=
formAction
.
getFieldValue
(
'userId'
)
const
userId
=
userInfo
[
0
].
userId
const
{
code
}
=
await
PublicApi
.
postMemberAbilitySalesChannelUnbind
({
userId
,
relationIds
:
id
?
[
id
]
:
realRowCtl
.
selectedRowKey
s
relationIds
:
relationId
s
})
if
(
code
===
1000
)
{
setTableData
(
d
=>
{
return
d
.
filter
(
v
=>
!
realRowCtl
.
selectedRowKeys
.
includes
(
v
.
memberId
))
clearRealRowCtl
(
relationIds
)
return
d
.
filter
(
v
=>
!
relationIds
.
includes
(
v
.
relationId
))
})
message
.
success
(
'解绑成功'
)
}
}
else
{
message
.
error
(
'请先选择业务员'
)
}
}
const
clearRealRowCtl
=
(
ids
:
any
[])
=>
{
realRowCtl
.
setSelectRow
([...
realRowCtl
.
selectRow
.
filter
(
v
=>
!
ids
.
includes
(
v
.
relationId
))])
realRowCtl
.
setSelectedRowKeys
([...
realRowCtl
.
selectedRowKeys
.
filter
(
v
=>
!
ids
.
includes
(
v
))])
}
const
handleSubmit
=
async
()
=>
{
const
userInfo
=
formAction
.
getFieldValue
(
'userId'
)
if
(
userInfo
&&
userInfo
.
length
>
0
)
{
...
...
@@ -436,17 +490,17 @@ const MemberDetail: React.FC<{}> = () => {
<
TabsItem
tab=
"管理下级渠道"
key=
"2"
>
<
Row
justify=
'space-between'
style=
{
{
marginBottom
:
20
}
}
>
<
Col
>
<
Button
type=
'default'
onClick=
{
()
=>
unBindMember
()
}
>
批量解除绑定关系
</
Button
>
<
Button
type=
'default'
onClick=
{
()
=>
unBindMember
()
}
disabled=
{
pageStatus
===
PageStatus
.
PREVIEW
}
>
批量解除绑定关系
</
Button
>
</
Col
>
<
Col
style=
{
{
display
:
'flex'
}
}
>
<
Input
.
Search
/>
<
Input
.
Search
value=
{
keywordName
}
onChange=
{
e
=>
setKeywordName
(
e
.
target
.
value
)
}
onPressEnter=
{
fetchSaleChannel
}
/>
<
Button
type=
'default'
style=
{
{
marginLeft
:
20
}
}
>
重置
</
Button
>
</
Col
>
</
Row
>
<
Button
block
type=
'dashed'
onClick=
{
()
=>
setMemberVisible
(
true
)
}
>
选择待绑定渠道会员
</
Button
>
<
Button
block
type=
'dashed'
onClick=
{
()
=>
setMemberVisible
(
true
)
}
disabled=
{
pageStatus
===
PageStatus
.
PREVIEW
}
>
选择待绑定渠道会员
</
Button
>
<
StandardTable
columns=
{
connectMemberColumns
}
rowSelection=
{
realRowSelection
}
rowSelection=
{
pageStatus
!==
PageStatus
.
PREVIEW
&&
realRowSelection
}
rowKey=
'relationId'
tableProps=
{
{
dataSource
:
tableData
...
...
@@ -465,6 +519,7 @@ const MemberDetail: React.FC<{}> = () => {
columns=
{
modalMemberColumns
}
fetchTableData=
{
fetchTableData
}
rowKey=
{
'memberId'
}
forceRender
formilyProps=
{
{
ctx
:
{
schema
:
{
...
...
src/pages/channel/memberList/index.tsx
View file @
b412ed8e
...
...
@@ -29,7 +29,7 @@ const ChannelMember: React.FC<{}> = () => {
}
const
updateItem
=
(
record
)
=>
{
history
.
push
(
`/memberCenter/channelAbility/memberList/
add
?id=
${
record
.
userId
}
&preview=0`
)
history
.
push
(
`/memberCenter/channelAbility/memberList/
edit
?id=
${
record
.
userId
}
&preview=0`
)
}
const
columns
:
ColumnType
<
any
>
[]
=
[
...
...
@@ -106,6 +106,7 @@ const ChannelMember: React.FC<{}> = () => {
formilyLayouts=
{
{
justify
:
'space-between'
}
}
rowKey=
'userId'
formilyChilds=
{
{
layouts
:
{
order
:
2
...
...
@@ -128,7 +129,7 @@ const ChannelMember: React.FC<{}> = () => {
account
:
{
type
:
'Search'
,
"x-component-props"
:
{
placeholder
:
'请输入
角色名称
'
placeholder
:
'请输入
登录账号
'
}
},
name
:
{
...
...
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