wjx 2 дней назад
Родитель
Сommit
a0a5fac3d6

+ 3 - 3
src/pages/weComTask/page/bookLink/tableConfig.tsx

@@ -93,12 +93,12 @@ export function bookLinkTableConfig(): ColumnsType<any> {
         },
         {
             title: '创建人',
-            dataIndex: 'createBy',
-            key: 'createBy',
+            dataIndex: 'createByInfo',
+            key: 'createByInfo',
             align: 'center',
             width: 80,
             render: (value) => {
-                return <span style={{ fontSize: 12 }}>{value}</span>
+                return <span style={{ fontSize: 12 }}>{value?.nickname}</span>
             }
         },
         {

+ 1 - 1
src/pages/weComTask/page/businessPlan/create/components/massSending/content.tsx

@@ -160,7 +160,7 @@ const Content = forwardRef(({ massSendingStrategy, value, onChange, bookCityList
                                                     const sendDataItem = sendData?.[i];
                                                     return <Card
                                                         key={i}
-                                                        title={<strong>发送对象{i + 1} 内容配置</strong>}
+                                                        title={<strong>发送对象{i + 1}: {sendDataItem?.externalUserFilterName} 内容配置</strong>}
                                                         style={{ background: '#fff', marginBottom: 10 }}
                                                         extra={sendDataItem?.externalUserType === "specify" ? <Popover
                                                             placement="right"

+ 9 - 1
src/pages/weComTask/page/businessPlan/create/components/massSending/previewMassSendingStrategy.tsx

@@ -95,7 +95,15 @@ const PreviewMassSendingStrategy: React.FC<{ massSendingStrategy: { [x: string]:
                                                         title={<strong>策略{index + 1} 发送对象{i + 1}</strong>}
                                                         style={{ background: '#fff', marginBottom: 10 }}
                                                     >
-                                                        <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'flex-start' }}>
+                                                        <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'flex-start', width: '100%' }}>
+                                                            <Form.Item
+                                                                {...restField}
+                                                                label={<strong>名称</strong>}
+                                                                name={[name, 'externalUserFilterName']}
+                                                                rules={[{ required: true, message: '请输入发送对象名称!' }]}
+                                                            >
+                                                                <Input placeholder="请输入发送对象名称" allowClear />
+                                                            </Form.Item>
                                                             <Form.Item
                                                                 {...restField}
                                                                 name={[name, 'externalUserType']}

+ 8 - 0
src/pages/weComTask/page/businessPlan/create/components/massSending/strategy.tsx

@@ -225,6 +225,14 @@ const Strategy = forwardRef(({ value, onChange }: TASK_CREATE.StrategyProps, ref
                                                             extra={sendData?.length > 1 ? <Button icon={<DeleteOutlined />} type='link' style={{ color: 'red' }} onClick={() => remove(name)}></Button> : null}
                                                             id={`strategy_${index}_${i}_sendData`}
                                                         >
+                                                            <Form.Item
+                                                                {...restField}
+                                                                label={<strong>发送对象名称</strong>}
+                                                                name={[name, 'externalUserFilterName']}
+                                                                rules={[{ required: true, message: '请输入发送对象名称!' }]}
+                                                            >
+                                                                <Input placeholder="请输入发送对象名称" allowClear />
+                                                            </Form.Item>
                                                             <Form.Item
                                                                 label={<strong>发送对象配置</strong>}
                                                                 required

+ 83 - 8
src/pages/weComTask/page/businessPlan/create/index.tsx

@@ -1,7 +1,7 @@
 import { inject, observer } from 'mobx-react';
 import React, { useCallback, useEffect, useState } from 'react';
 import style from './index.less'
-import { App, Button, Card, Empty, Input, Popconfirm, Select, Space, Spin, Table, Tabs } from 'antd';
+import { App, Button, Card, Empty, Flex, Form, Input, Popconfirm, Select, Space, Spin, Table, Tabs } from 'antd';
 import MassSending from './components/massSending';
 import { useAjax } from '@/Hook/useAjax';
 import { MediaContentProps, welcomeMsgJobTypeApi } from '@/pages/weComTask/API/weMaterial/weMaterial';
@@ -20,6 +20,7 @@ import { toJS } from 'mobx';
 import Friends from './components/friends';
 import SelectCwTag from '@/pages/weComTask/components/selectCwTag';
 import SelectCorpUserGroup from '../../corpUserManage/selectCorpUserGroup';
+import { getBindMpListApi } from '@/pages/weComTask/API/corpUserAssign';
 
 export const DispatchTaskCreate = React.createContext<TASK_CREATE.DispatchTaskCreate | null>(null);
 /**
@@ -36,14 +37,17 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
     const { message, modal } = App.useApp()
     const [msgJobTypeList, setMsgJobTypeList] = useState<{ value: string, label: string }[]>([])
     const [previewData, setPreviewData] = useState<TASK_CREATE.previewDataProps>({})
+    const [previewDataOld, setPreviewDataOld] = useState<TASK_CREATE.previewDataProps>({})
     const [subVisible, setSubVisible] = useState<boolean>(false) // 选择设置名称弹窗控制
     const [eaVisible, setEaVisible] = useState<boolean>(false)
     const [qwVisible, setQwVisible] = useState<boolean>(false)
+    const [mpList, setMplist] = useState<{ label: string, value: number }[]>([])
     const [previewContent, setPreviewContent] = useState<{ groupMsgContent?: any[], welcomeMsgContent?: any[], externalUserTransferContent?: any[] }>({})
 
     const welcomeMsgJobType = useAjax(() => welcomeMsgJobTypeApi())//获取欢迎语类型
 
     const addTask = useAjax((params) => addTaskApi(params))
+    const getBindMpList = useAjax(() => getBindMpListApi())
     /***********************************************/
     console.log('settings--->', settings, previewContent)
 
@@ -60,6 +64,9 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
                 setMsgJobTypeList(Object.keys(res.data).map(key => ({ value: key, label: res.data[key] })))
             }
         })
+        getBindMpList.run().then(res => {
+            setMplist(res?.data?.map((item: any) => ({ label: item.name, value: item.id })))
+        })
     }, [])
 
     // 预览
@@ -112,7 +119,10 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
                         platform: settings?.platform,
                         templateProductId: settings?.templateProductId,
                         id: i * row.length + (index + 1),
-                        rowSpan: index === 0 ? row.length : 0
+                        rowSpan: index === 0 ? row.length : 0,
+                        mpAccountId: item.corpUsers?.[0]?.mpAccountId,
+                        mpAccountName: item.corpUsers?.[0]?.mpAccountName,
+                        corpUserStrList: item.corpUsers?.map(item => item.corpId + '_' + item.corpUserId)
                     })
                     return true
                 })
@@ -177,7 +187,10 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
                         linkData,
                         miniProgramData,
                         userRowSpan: li % row.length === 0 ? row.length : 0,
-                        strategyRowSpan: strategyIndex !== dataItem.strategyIndex ? dataItem.strategyDataCount : 0
+                        strategyRowSpan: strategyIndex !== dataItem.strategyIndex ? dataItem.strategyDataCount : 0,
+                        mpAccountId: item.corpUsers?.[0]?.mpAccountId,
+                        mpAccountName: item.corpUsers?.[0]?.mpAccountName,
+                        corpUserStrList: item.corpUsers?.map(item => item.corpId + '_' + item.corpUserId)
                     })
                     strategyIndex = dataItem.strategyIndex
                     return true
@@ -372,6 +385,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
         // }
         if (newPreviewData && Object.keys(newPreviewData).length) {
             setPreviewData(newPreviewData)
+            setPreviewDataOld(newPreviewData)
         } else {
             message.error('请填写至少填写一项内容')
         }
@@ -507,7 +521,8 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
                             const { contentDTO, sendMode } = massSendingContent.massSendingContentDTO[settingsIndex]['sendContentDto'][sendIndex]
                             const detail: { [x: string]: any } = {
                                 sendMode,
-                                contentDTO
+                                contentDTO,
+                                externalUserFilterName: sendItem?.externalUserFilterName
                             }
                             if (sendItem.externalUserType === 'specify') {
                                 detail.externalUserFilter = {
@@ -725,8 +740,10 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
         })
     }
 
+    // 重置表格
     const onPreviewReset = () => {
         setPreviewData({})
+        setPreviewDataOld({})
         setPreviewContent({})
     }
 
@@ -764,6 +781,31 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
         setPreviewContent(newPreviewContent)
     }, [previewContent])
 
+    const tableSearch = useCallback((values) => {
+        console.log(values)
+        if (values?.mpAccountIds?.length > 0 || values?.corpUserIds?.length > 0) {
+            const newPreviewData: TASK_CREATE.previewDataProps = {}
+            const corpUserStrList = values?.corpUserIds?.map(item => item.corpId + '_' + item.corpUserId)
+            if (previewDataOld?.welcome) {
+                newPreviewData.welcome = previewDataOld.welcome.filter(item => (
+                    (values?.mpAccountIds?.length > 0 ? values.mpAccountIds.includes(item.mpAccountId) : true)
+                    &&
+                    (corpUserStrList?.length > 0 ? item.corpUserStrList.some(str => corpUserStrList.includes(str)) : true)
+                )).map(item => ({ ...item, rowSpan: 1 }))
+            }
+            if (previewDataOld?.massSending) {
+                newPreviewData.massSending = previewDataOld.massSending.filter(item => (
+                    (values?.mpAccountIds?.length > 0 ? values.mpAccountIds.includes(item.mpAccountId) : true)
+                    &&
+                    (corpUserStrList?.length > 0 ? item.corpUserStrList.some(str => corpUserStrList.includes(str)) : true)
+                )).map(item => ({ ...item, userRowSpan: 1, strategyRowSpan: 1, sendDataRowSpan: 1 }))
+            }
+            setPreviewData(newPreviewData)
+        } else {
+            setPreviewData(previewDataOld)
+        }
+    }, [previewDataOld, previewData])
+
     return <div className={style.create}>
         <Spin spinning={false}>
             <Card title={<strong>配置区</strong>} className={`${style.card} ${style.config}`}>
@@ -777,9 +819,9 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
                                 setSettings({
                                     ...settings, corpUserGroups: corpUserGroups.map(item => {
                                         return {
-                                            ...item, corpUsers: item.corpUsers.map(item => {
-                                                const { corpUserId, name, corpName, corpId, mpAccountId } = item
-                                                return { corpUserId, name, corpName, corpId, mpAccountId }
+                                            ...item, corpUsers: item.corpUsers.map((item: any) => {
+                                                const { corpUserId, name, corpName, corpId, mpAccountId, mpAccountInfo } = item
+                                                return { corpUserId, name, corpName, corpId, mpAccountId, mpAccountName: mpAccountInfo.name }
                                             })
                                         }
                                     })
@@ -915,6 +957,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
                         onConfirm={() => {
                             setSettings(undefined)
                             setPreviewData({})
+                            setPreviewDataOld({})
                             localStorage.removeItem('TASK_CORP_CREATE')
                         }}
                     >
@@ -927,6 +970,38 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
 
         <Card className={style.card} style={{ marginTop: 10, marginBottom: 10 }}>
             {Object.keys(previewData).length > 0 ? <div style={{ minHeight: 300 }}>
+                <Form
+                    layout={'inline'}
+                    onFinish={tableSearch}
+                >
+                    <Form.Item label={<strong>公众号</strong>} name="mpAccountIds">
+                        <Select
+                            showSearch
+                            style={{ minWidth: 160 }}
+                            maxTagCount={1}
+                            placeholder="公众号"
+                            filterOption={(input, option) =>
+                                ((option?.label ?? '') as string).toLowerCase().includes(input.toLowerCase())
+                            }
+                            allowClear
+                            mode='multiple'
+                            options={mpList}
+                        />
+                    </Form.Item>
+
+                    <Space.Compact>
+                        <Button>客服组</Button>
+                        <Form.Item name="corpUserIds">
+                            <SelectCorpUser placeholder="请选择客服号" />
+                        </Form.Item>
+                    </Space.Compact>
+                    <Form.Item>
+                        <Space>
+                            <Button htmlType="reset">重置</Button>
+                            <Button type="primary" htmlType='submit'>搜索</Button>
+                        </Space>
+                    </Form.Item>
+                </Form>
                 <Tabs
                     defaultActiveKey="1"
                     items={Object.keys(previewData).map(key => ({
@@ -944,7 +1019,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
                         </> : key === 'massSending' ? <>
                             <Table
                                 dataSource={previewData[key]}
-                                columns={massSendingColumns(setContent, bookPlatForm, previewContent)}
+                                columns={massSendingColumns(setContent, bookPlatForm, bookList, previewContent)}
                                 rowKey={'id'}
                                 bordered={true}
                                 scroll={{ y: 550 }}

+ 11 - 10
src/pages/weComTask/page/businessPlan/create/tableConfig.tsx

@@ -125,7 +125,7 @@ export const userInheritColumns = (setContent: (data: TASK_CREATE.SetContentProp
 }
 
 /** 群发 */
-export const massSendingColumns = (setContent: (data: TASK_CREATE.SetContentProps) => void, bookPlatForm: TASK_CREATE.BookPlatFormProps[], previewContent: { groupMsgContent?: any[], welcomeMsgContent?: any[], externalUserTransferContent?: any[] }): ColumnsType<AnyObject> => {
+export const massSendingColumns = (setContent: (data: TASK_CREATE.SetContentProps) => void, bookPlatForm: TASK_CREATE.BookPlatFormProps[], bookList: TASK_CREATE.BookListProps[], previewContent: { groupMsgContent?: any[], welcomeMsgContent?: any[], externalUserTransferContent?: any[] }): ColumnsType<AnyObject> => {
     return [
         {
             title: '账号',
@@ -135,7 +135,7 @@ export const massSendingColumns = (setContent: (data: TASK_CREATE.SetContentProp
             render(value, record) {
                 return <>
                     <Title level={5} style={{ margin: 0 }}>{value}</Title>
-                    <Paragraph style={{ margin: 0 }}>公众号ID:{record?.corpUserList?.[0]?.mpAccountId || '--'}</Paragraph>
+                    <Paragraph style={{ margin: 0 }}>公众号:{record?.corpUserList?.[0]?.mpAccountName || '--'}</Paragraph>
                     <Paragraph style={{ margin: 0 }}>客服号:{record?.corpUserList?.map(i => i.name).join('、')}</Paragraph>
                 </>
             },
@@ -151,9 +151,9 @@ export const massSendingColumns = (setContent: (data: TASK_CREATE.SetContentProp
             render(value, record) {
                 return <>
                     <Title level={5} style={{ margin: 0 }}>标题:{value}</Title>
-                    {record?.bizType && <Paragraph style={{ margin: 0 }}>业务类型:{record?.bizType || '<空>'}</Paragraph>}
-                    {record?.platform && <Paragraph style={{ margin: 0 }}>书城:{record?.platform || '<空>'}</Paragraph>}
-                    {record?.templateProductId && <Paragraph style={{ margin: 0 }}>适用产品:{record?.templateProductId || '<空>'}</Paragraph>}
+                    {record?.bizType && <Paragraph style={{ margin: 0 }}>业务类型:{record?.bizType === 'noval' ? '小说' : record?.bizType === 'game' ? '游戏' : '<空>'}</Paragraph>}
+                    {record?.platform && <Paragraph style={{ margin: 0 }}>书城:{record?.platform ? bookPlatForm?.find(item => item.id === record?.platform)?.platformName : '<空>'}</Paragraph>}
+                    {record?.templateProductId && <Paragraph style={{ margin: 0 }}>适用产品:{record?.templateProductId ? bookList?.find(item => item.id === record?.templateProductId)?.bookName : '<空>'}</Paragraph>}
                 </>
             },
             onCell: (record) => {
@@ -188,6 +188,7 @@ export const massSendingColumns = (setContent: (data: TASK_CREATE.SetContentProp
             render(value, record) {
                 return <>
                     <Title level={5} style={{ margin: 0 }}>发送对象{record.sendDataIndex}</Title>
+                    <Paragraph style={{ margin: 0 }} ellipsis>名称:{value?.externalUserFilterName}</Paragraph>
                     <Paragraph style={{ margin: 0 }}>内容发送模式:{welcomeContentData?.find(i => i.value === record?.sendMode)?.label}</Paragraph>
                     <Paragraph style={{ margin: 0 }}>类型:{value?.externalUserType === 'all' ? '全部' : '指定'}</Paragraph>
                     {value?.externalUserType === 'specify' && <FilterUser isSHow value={value?.externalUserFilter} configType='USER_GROUP' />}
@@ -442,7 +443,7 @@ export const highMassSendingColumns = (): ColumnsType<AnyObject> => {
 }
 
 
-export const welcomeColumns = (bookPlatForm: { platformName: string, id: number, platformKey: string }[], bookList: { id: number, bookName: string, platformId: number }[], setContent: (data: TASK_CREATE.SetContentProps) => void, previewContent: { groupMsgContent?: any[], welcomeMsgContent?: any[], externalUserTransferContent?: any[] }): ColumnsType<AnyObject> => {
+export const welcomeColumns = (bookPlatForm: TASK_CREATE.BookPlatFormProps[], bookList: TASK_CREATE.BookListProps[], setContent: (data: TASK_CREATE.SetContentProps) => void, previewContent: { groupMsgContent?: any[], welcomeMsgContent?: any[], externalUserTransferContent?: any[] }): ColumnsType<AnyObject> => {
     return [
         {
             title: '账号',
@@ -452,7 +453,7 @@ export const welcomeColumns = (bookPlatForm: { platformName: string, id: number,
             render(value, record) {
                 return <>
                     <Title level={5} style={{ margin: 0 }}>{value}({record?.corpUserList?.[0]?.corpName})</Title>
-                    <Paragraph style={{ margin: 0 }}>公众号ID:{record?.corpUserList?.[0]?.mpAccountId || '--'}</Paragraph>
+                    <Paragraph style={{ margin: 0 }}>公众号:{record?.corpUserList?.[0]?.mpAccountName || '--'}</Paragraph>
                     <Paragraph style={{ margin: 0 }}>客服号:{record?.corpUserList?.map(i => i.name).join('、')}</Paragraph>
                 </>
             },
@@ -468,9 +469,9 @@ export const welcomeColumns = (bookPlatForm: { platformName: string, id: number,
             render(value, record) {
                 return <>
                     <Title level={5} style={{ margin: 0 }}>标题:{value}</Title>
-                    {record?.bizType && <Paragraph style={{ margin: 0 }}>业务类型:{record?.bizType || '<空>'}</Paragraph>}
-                    {record?.platform && <Paragraph style={{ margin: 0 }}>书城:{record?.platform || '<空>'}</Paragraph>}
-                    {record?.templateProductId && <Paragraph style={{ margin: 0 }}>适用产品:{record?.templateProductId || '<空>'}</Paragraph>}
+                    {record?.bizType && <Paragraph style={{ margin: 0 }}>业务类型:{record?.bizType === 'noval' ? '小说' : record?.bizType === 'game' ? '游戏' : '<空>'}</Paragraph>}
+                    {record?.platform && <Paragraph style={{ margin: 0 }}>书城:{record?.platform ? bookPlatForm?.find(item => item.id === record?.platform)?.platformName : '<空>'}</Paragraph>}
+                    {record?.templateProductId && <Paragraph style={{ margin: 0 }}>适用产品:{record?.templateProductId ? bookList?.find(item => item.id === record?.templateProductId)?.bookName : '<空>'}</Paragraph>}
                 </>
             },
             onCell: (record) => {

+ 1 - 1
src/pages/weComTask/page/businessPlan/create/typings.d.ts

@@ -71,7 +71,7 @@ declare namespace TASK_CREATE {
         friendsTagContent?: any[],
         friendsMsgContent?: any[],
     }
-    type CorpUserProps = { corpUserId: string, name: string, corpName: string, corpId: string, mpAccountId?: number }
+    type CorpUserProps = { corpUserId: string, name: string, corpName: string, corpId: string, mpAccountId?: number, mpAccountName?: string }
     type CorpUserGroupProps = { 
         corpUsers: CorpUserProps[],
         welcomeMsgContent?: any[],

+ 1 - 1
src/pages/weComTask/page/corpUserManage/selectCorpUser.tsx

@@ -140,7 +140,7 @@ const SelectCorpUser: React.FC<Props> = ({ value = [], onChange, placeholder })
                     columns={WeTableSelectConfig()}
                     dataSource={getCorpUser?.data?.data?.records}
                     size='small'
-                    scroll={{ y: 300 }}
+                    scroll={{ y: 250 }}
                     rowKey={'corpUserId'}
                     loading={getCorpUser.loading}
                     pagination={{

+ 15 - 9
src/pages/weComTask/page/corpUserManage/selectCorpUserGroupModal.tsx

@@ -208,7 +208,7 @@ const SelectCorpUserGroupModal: React.FC<Props> = ({ visible, onClose, value, on
                                 (data?.[selectAdz - 1]?.corpUsers?.length > 0 ? data?.[selectAdz - 1]?.corpUsers?.[0]?.corpId !== record.corpId || (data?.[selectAdz - 1]?.corpUsers?.[0]?.mpAccountId ? data?.[selectAdz - 1]?.corpUsers?.[0]?.mpAccountId !== record.mpAccountId : record.mpAccountId) : false)
                         }),
                         onSelect: (record: { corpUserId: string }, selected: boolean) => {
-                            let newData = JSON.parse(JSON.stringify(data))
+                            const newData = JSON.parse(JSON.stringify(data))
                             let dataIten = newData[selectAdz - 1]?.corpUsers || []
                             if (selected) {
                                 dataIten.push({ ...record })
@@ -218,22 +218,28 @@ const SelectCorpUserGroupModal: React.FC<Props> = ({ visible, onClose, value, on
                             newData[selectAdz - 1].corpUsers = dataIten
                             setData(newData)
                         },
-                        onSelectAll: (selected: boolean, selectedRowss: { corpUserId: string }[], changeRows: { corpUserId: string }[]) => {
-                            let newData = JSON.parse(JSON.stringify(data))
-                            let dataIten = newData[selectAdz - 1]?.corpUsers || []
+                        onSelectAll: (selected: boolean, _, changeRows: { corpUserId: string, corpId: string, mpAccountId?: string }[]) => {
+                            const newData = JSON.parse(JSON.stringify(data))
+                            const dataIten = newData[selectAdz - 1]?.corpUsers || []
                             if (selected) {
-                                let newSelectAccData = [...dataIten]
+                                const newSelectAccData = [...dataIten]
+                                if (newSelectAccData?.length === 0) {
+                                    const { mpAccountId, corpId } = changeRows[0]
+                                    changeRows = changeRows.filter(item => item.corpId === corpId && item?.mpAccountId === mpAccountId)
+                                }
                                 changeRows.forEach((item: { corpUserId: string }) => {
-                                    let index = newSelectAccData.findIndex((ite: { corpUserId: string }) => ite.corpUserId === item.corpUserId)
+                                    const index = newSelectAccData.findIndex((ite: { corpUserId: string }) => {
+                                        return ite.corpUserId === item.corpUserId
+                                    })
                                     if (index === -1) {
-                                        let data: any = { ...item }
+                                        const data: any = { ...item }
                                         newSelectAccData.push(data)
                                     }
                                 })
                                 newData[selectAdz - 1].corpUsers = newSelectAccData
                             } else {
-                                let newSelectAccData = dataIten.filter((item: { corpUserId: string }) => {
-                                    let index = changeRows.findIndex((ite: { corpUserId: string }) => ite.corpUserId === item.corpUserId)
+                                const newSelectAccData = dataIten.filter((item: { corpUserId: string }) => {
+                                    const index = changeRows.findIndex((ite: { corpUserId: string }) => ite.corpUserId === item.corpUserId)
                                     if (index !== -1) {
                                         return false
                                     } else {