Commit b412ed8e authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

Merge branch 'dev-srm' of http://10.0.0.22:3000/lingxi/lingxi-business-paltform into dev-srm

parents 1287d6ae 31580809
......@@ -80,7 +80,6 @@ const Relevance = props => {
}
setVisible(true);
};
return (
<RowStyleLayout>
<Input
......
......@@ -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.selectedRowKeys
relationIds: relationIds
})
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: {
......
......@@ -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: {
......
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