Commit 3afb22e1 authored by 前端-许佳敏's avatar 前端-许佳敏

fix: 业务员管理修复

parent 303edb84
......@@ -76,6 +76,7 @@ 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)
......@@ -113,18 +114,25 @@ const MemberDetail: React.FC<{}> = () => {
}).then((res) => {
if (res.code === 1000) {
formAction.setFieldValue('userId', [res.data])
setTableData(res.data.data)
// 添加一个remote标识, 带有此标识的 将会调用接口解绑
setTableData(res.data.data.map(v => ({...v, isRemote: true})))
}
})
}
useEffect(() => {
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.relationId)
unBindMember(record)
}
const abilityColumns: any[] = [
......@@ -209,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>
}
}
......@@ -267,17 +275,38 @@ const MemberDetail: React.FC<{}> = () => {
return userInfo && userInfo.length > 0
}
const unBindMember = async (relationId?) => {
if (pageStatus === PageStatus.ADD) {
// 新增则无需调用接口 直接删除
if (relationId) {
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))
} else {
return false
}
relationIds.push(relationId)
} else {
// 批量
if (pageStatus === PageStatus.ADD) {
// 新增情况下 删除本地数据
setTableData(d => {
return d.filter(v => !realRowCtl.selectedRowKeys.includes(v.relationId))
})
return false
}
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')
......@@ -285,12 +314,13 @@ const MemberDetail: React.FC<{}> = () => {
const { code } = await PublicApi.postMemberAbilitySalesChannelUnbind({
userId,
relationIds: relationId ? [relationId] : realRowCtl.selectedRowKeys
relationIds: relationIds
})
if (code === 1000) {
setTableData(d => {
return d.filter(v => relationId ? v.relationId !== relationId! : realRowCtl.selectedRowKeys.includes(v.relationId))
clearRealRowCtl(relationIds)
return d.filter(v => !relationIds.includes(v.relationId))
})
}
} else {
......@@ -298,6 +328,11 @@ const MemberDetail: React.FC<{}> = () => {
}
}
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) {
......@@ -455,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 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
......@@ -484,6 +519,7 @@ const MemberDetail: React.FC<{}> = () => {
columns={modalMemberColumns}
fetchTableData={fetchTableData}
rowKey={'memberId'}
forceRender
formilyProps={{
ctx: {
schema: {
......
......@@ -106,6 +106,7 @@ const ChannelMember: React.FC<{}> = () => {
formilyLayouts={{
justify: 'space-between'
}}
rowKey='userId'
formilyChilds={{
layouts: {
order: 2
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment