wjx 21 hodín pred
rodič
commit
aa33815a90

+ 87 - 3
src/pages/weComTask/components/filterUser/filterUserText.ts

@@ -22,7 +22,16 @@ const targetingData = [
     { key: 'lastRechargeHour', name: '最近充值时间距今(小时)' },
     { key: 'lastReadTime', name: '最近阅读时间' },
     { key: 'lastReadHour', name: '最近阅读至今(小时)' },
-    { key: 'opers', name: '手机系统' }
+    { key: 'opers', name: '手机系统' },
+    { key: 'firstAddGroupTime', name: '首次拉群时间' },
+    { key: 'lastAddGroupTime', name: '最近拉群时间' },
+    { key: 'lastExitTime', name: '最近退群时间' },
+    { key: 'firstAddGroupHourRange', name: '首次拉群(最近N小时)' },
+    { key: 'lastAddGroupHourRange', name: '最近拉群(最近N小时)' },
+    { key: 'lastExitHourRange', name: '最近退群(最近N小时)' },
+    { key: 'addGroupCount', name: '进群次数' },
+    { key: 'exitGroupCount', name: '退群次数' },
+    { key: 'retentionGroupCount', name: '留存群聊数' }
 ]
 
 const targetingGroupData = [
@@ -102,6 +111,42 @@ interface ContentProps {
         groupChatUserMin?: number,
         groupChatUserMax?: number
     }
+    firstAddGroupTime?: { // 首次拉群时间
+        firstAddGroupTimeMin?: string,
+        firstAddGroupTimeMax?: string
+    }
+    lastAddGroupTime?: { // 最近拉群时间
+        lastAddGroupTimeMin?: string,
+        lastAddGroupTimeMax?: string
+    }
+    lastExitTime?: { // 最近退群时间
+        lastExitTimeMin?: string,
+        lastExitTimeMax?: string
+    }
+    firstAddGroupHourRange?: { // 首次拉群(最近N小时)
+        firstAddGroupHourRangeMin?: string,
+        firstAddGroupHourRangeMax?: string
+    }
+    lastAddGroupHourRange?: { // 最近拉群(最近N小时)
+        lastAddGroupHourRangeMin?: string,
+        lastAddGroupHourRangeMax?: string
+    }
+    lastExitHourRange?: { // 最近退群(最近N小时)
+        lastExitHourRangeMin?: string,
+        lastExitHourRangeMax?: string
+    }
+    addGroupCount?: { // 进群次数
+        addGroupCountMin?: string,
+        addGroupCountMax?: string
+    }
+    exitGroupCount?: { // 退群次数
+        exitGroupCountMin?: string,
+        exitGroupCountMax?: string
+    }
+    retentionGroupCount?: { // 留存群聊数
+        retentionGroupCountMin?: string,
+        retentionGroupCountMax?: string
+    }
 }
 
 /** 重置筛选用户数据 */
@@ -110,7 +155,10 @@ export const resetFilterUserData = (data: { [x: string]: any }): ContentProps =>
         beginTime, endTime, rechargeCountMin, rechargeCountMax, rechargeMoneyMin, rechargeMoneyMax, lastRechargeTimeMin, lastRechargeTimeMax,
         firstRechargeMoneyMin, firstRechargeMoneyMax, rechargeMoneyMaxMin, rechargeMoneyMaxMax, subHourMin, subHourMax, subDayMin, subDayMax, 
         lastRechargeHourMin, lastRechargeHourMax, lastReadHourMin, lastReadHourMax, groupChatNames, groupChatBeginTime, groupChatEndTime, groupChatHourMin, groupChatHourMax, 
-        groupChatUserMin, groupChatUserMax, lastReadTimeMin, lastReadTimeMax,
+        groupChatUserMin, groupChatUserMax, lastReadTimeMin, lastReadTimeMax, firstAddGroupTimeMin, firstAddGroupTimeMax,
+        lastAddGroupTimeMin, lastAddGroupTimeMax, lastExitTimeMin, lastExitTimeMax, firstAddGroupHourRangeMin, firstAddGroupHourRangeMax,
+        lastAddGroupHourRangeMin, lastAddGroupHourRangeMax, lastExitHourRangeMin, lastExitHourRangeMax, addGroupCountMin, addGroupCountMax,
+        exitGroupCountMin, exitGroupCountMax, retentionGroupCountMin, retentionGroupCountMax,
         ...params
     } = data
 
@@ -160,6 +208,33 @@ export const resetFilterUserData = (data: { [x: string]: any }): ContentProps =>
     if (groupChatUserMin || groupChatUserMax) {
         newData.groupChatUser = { groupChatUserMin, groupChatUserMax }
     }
+    if (firstAddGroupTimeMin || firstAddGroupTimeMax) {
+        newData.firstAddGroupTime = { firstAddGroupTimeMin, firstAddGroupTimeMax }
+    }
+    if (lastAddGroupTimeMin || lastAddGroupTimeMax) {
+        newData.lastAddGroupTime = { lastAddGroupTimeMin, lastAddGroupTimeMax }
+    }
+    if (lastExitTimeMin || lastExitTimeMax) {
+        newData.lastExitTime = { lastExitTimeMin, lastExitTimeMax }
+    }
+    if (firstAddGroupHourRangeMin || firstAddGroupHourRangeMax) {
+        newData.firstAddGroupHourRange = { firstAddGroupHourRangeMin, firstAddGroupHourRangeMax }
+    }
+    if (lastAddGroupHourRangeMin || lastAddGroupHourRangeMax) {
+        newData.lastAddGroupHourRange = { lastAddGroupHourRangeMin, lastAddGroupHourRangeMax }
+    }
+    if (lastExitHourRangeMin || lastExitHourRangeMax) {
+        newData.lastExitHourRange = { lastExitHourRangeMin, lastExitHourRangeMax }
+    }
+    if (addGroupCountMin || addGroupCountMax) {
+        newData.addGroupCount = { addGroupCountMin, addGroupCountMax }
+    }
+    if (exitGroupCountMin || exitGroupCountMax) {
+        newData.exitGroupCount = { exitGroupCountMin, exitGroupCountMax }
+    }
+    if (retentionGroupCountMin || retentionGroupCountMax) {
+        newData.retentionGroupCount = { retentionGroupCountMin, retentionGroupCountMax }
+    }
     return newData
 }
 
@@ -190,7 +265,7 @@ interface Props {
 const FilterUserText = ({ data, configName, configType = 'USER_GROUP', bookCityList, bookPlatForm, bookList }: Props): string => {
 
 
-    const content: any = getContent(data, configType)
+    const content: ContentProps = getContent(data, configType)
 
     return (configName ? configName + '\n' : '') +
     (content?.msgTagIds ? `智能标签:${content?.msgTagIds?.['business'] ? `业务:${businessPlanData.find(i => i.value === content?.msgTagIds['business'])?.label}` : ''}--${content?.msgTagIds?.['bookCity'] ? `书城:${bookPlatForm.find(i => i.id === content?.msgTagIds['bookCity'])?.platformName}` : ''}--${content?.msgTagIds?.['product'] ? `产品:${bookList.find(i => i.id === content?.msgTagIds['product'])?.bookName}\n` : ''}` : '') + 
@@ -218,6 +293,15 @@ const FilterUserText = ({ data, configName, configType = 'USER_GROUP', bookCityL
     (content?.groupChatTime ? `群创建时间:${content?.groupChatTime?.groupChatBeginTime ? content?.groupChatTime?.groupChatBeginTime + '小时' : '不限'} - ${content?.groupChatTime?.groupChatEndTime ? content?.groupChatTime?.groupChatEndTime + '小时' : '不限'}\n` : '') +
     (content?.groupChatHour ? `群创建时长:${content?.groupChatHour?.groupChatHourMin ? content?.groupChatHour?.groupChatHourMin : '不限'} - ${content?.groupChatHour?.groupChatHourMax ? content?.groupChatHour?.groupChatHourMax : '不限'}\n` : '') +
     (content?.groupChatUser ? `群人数:${content?.groupChatUser?.groupChatUserMin ? content?.groupChatUser?.groupChatUserMin : '不限'} - ${content?.groupChatUser?.groupChatUserMax ? content?.groupChatUser?.groupChatUserMax : '不限'}\n` : '') +
+    (content?.firstAddGroupTime ? `首次拉群时间:${content?.firstAddGroupTime?.firstAddGroupTimeMin ? content?.firstAddGroupTime?.firstAddGroupTimeMin : '不限'} - ${content?.firstAddGroupTime?.firstAddGroupTimeMax ? content?.firstAddGroupTime?.firstAddGroupTimeMax : '不限'}\n` : '') +
+    (content?.lastAddGroupTime ? `最近拉群时间:${content?.lastAddGroupTime?.lastAddGroupTimeMin ? content?.lastAddGroupTime?.lastAddGroupTimeMin : '不限'} - ${content?.lastAddGroupTime?.lastAddGroupTimeMax ? content?.lastAddGroupTime?.lastAddGroupTimeMax : '不限'}\n` : '') +
+    (content?.lastExitTime ? `最近退群时间:${content?.lastExitTime?.lastExitTimeMin ? content?.lastExitTime?.lastExitTimeMin : '不限'} - ${content?.lastExitTime?.lastExitTimeMax ? content?.lastExitTime?.lastExitTimeMax : '不限'}\n` : '') +
+    (content?.firstAddGroupHourRange ? `首次拉群(最近N小时):${content?.firstAddGroupHourRange?.firstAddGroupHourRangeMin ? content?.firstAddGroupHourRange?.firstAddGroupHourRangeMin : '不限'} - ${content?.firstAddGroupHourRange?.firstAddGroupHourRangeMax ? content?.firstAddGroupHourRange?.firstAddGroupHourRangeMax : '不限'}\n` : '') +
+    (content?.lastAddGroupHourRange ? `最近拉群(最近N小时):${content?.lastAddGroupHourRange?.lastAddGroupHourRangeMin ? content?.lastAddGroupHourRange?.lastAddGroupHourRangeMin : '不限'} - ${content?.lastAddGroupHourRange?.lastAddGroupHourRangeMax ? content?.lastAddGroupHourRange?.lastAddGroupHourRangeMax : '不限'}\n` : '') +
+    (content?.lastExitHourRange ? `最近退群(最近N小时):${content?.lastExitHourRange?.lastExitHourRangeMin ? content?.lastExitHourRange?.lastExitHourRangeMin : '不限'} - ${content?.lastExitHourRange?.lastExitHourRangeMax ? content?.lastExitHourRange?.lastExitHourRangeMax : '不限'}\n` : '') +
+    (content?.addGroupCount ? `进群次数:${content?.addGroupCount?.addGroupCountMin ? content?.addGroupCount?.addGroupCountMin : '不限'} - ${content?.addGroupCount?.addGroupCountMax ? content?.addGroupCount?.addGroupCountMax : '不限'}\n` : '') +
+    (content?.exitGroupCount ? `退群次数:${content?.exitGroupCount?.exitGroupCountMin ? content?.exitGroupCount?.exitGroupCountMin : '不限'} - ${content?.exitGroupCount?.exitGroupCountMax ? content?.exitGroupCount?.exitGroupCountMax : '不限'}\n` : '') +
+    (content?.retentionGroupCount ? `留存群聊数:${content?.retentionGroupCount?.retentionGroupCountMin ? content?.retentionGroupCount?.retentionGroupCountMin : '不限'} - ${content?.retentionGroupCount?.retentionGroupCountMax ? content?.retentionGroupCount?.retentionGroupCountMax : '不限'}\n` : '') +
     (content?.unlimited ? `不限:${content?.unlimited}` : '')
 }
 

+ 106 - 2
src/pages/weComTask/components/filterUser/filterUserTooltip.tsx

@@ -25,7 +25,16 @@ const targetingData = [
     { key: 'subDay', name: '关注距今天' },
     { key: 'lastRechargeHour', name: '最近充值时间距今(小时)' },
     { key: 'lastReadHour', name: '最近阅读至今(小时)' },
-    { key: 'opers', name: '手机系统' }
+    { key: 'opers', name: '手机系统' },
+    { key: 'firstAddGroupTime', name: '首次拉群时间' },
+    { key: 'lastAddGroupTime', name: '最近拉群时间' },
+    { key: 'lastExitTime', name: '最近退群时间' },
+    { key: 'firstAddGroupHourRange', name: '首次拉群(最近N小时)' },
+    { key: 'lastAddGroupHourRange', name: '最近拉群(最近N小时)' },
+    { key: 'lastExitHourRange', name: '最近退群(最近N小时)' },
+    { key: 'addGroupCount', name: '进群次数' },
+    { key: 'exitGroupCount', name: '退群次数' },
+    { key: 'retentionGroupCount', name: '留存群聊数' }
 ]
 
 const targetingGroupData = [
@@ -110,6 +119,42 @@ interface ContentProps {
         groupChatUserMin?: number,
         groupChatUserMax?: number
     }
+    firstAddGroupTime?: { // 首次拉群时间
+        firstAddGroupTimeMin?: string,
+        firstAddGroupTimeMax?: string
+    }
+    lastAddGroupTime?: { // 最近拉群时间
+        lastAddGroupTimeMin?: string,
+        lastAddGroupTimeMax?: string
+    }
+    lastExitTime?: { // 最近退群时间
+        lastExitTimeMin?: string,
+        lastExitTimeMax?: string
+    }
+    firstAddGroupHourRange?: { // 首次拉群(最近N小时)
+        firstAddGroupHourRangeMin?: string,
+        firstAddGroupHourRangeMax?: string
+    }
+    lastAddGroupHourRange?: { // 最近拉群(最近N小时)
+        lastAddGroupHourRangeMin?: string,
+        lastAddGroupHourRangeMax?: string
+    }
+    lastExitHourRange?: { // 最近退群(最近N小时)
+        lastExitHourRangeMin?: string,
+        lastExitHourRangeMax?: string
+    }
+    addGroupCount?: { // 进群次数
+        addGroupCountMin?: string,
+        addGroupCountMax?: string
+    }
+    exitGroupCount?: { // 退群次数
+        exitGroupCountMin?: string,
+        exitGroupCountMax?: string
+    }
+    retentionGroupCount?: { // 留存群聊数
+        retentionGroupCountMin?: string,
+        retentionGroupCountMax?: string
+    }
 }
 
 /** 重置筛选用户数据 */
@@ -118,7 +163,10 @@ export const resetFilterUserData = (data: { [x: string]: any }): ContentProps =>
         beginTime, endTime, rechargeCountMin, rechargeCountMax, rechargeMoneyMin, rechargeMoneyMax, lastRechargeTimeMin, lastRechargeTimeMax,
         firstRechargeMoneyMin, firstRechargeMoneyMax, rechargeMoneyMaxMin, rechargeMoneyMaxMax, subHourMin, subHourMax, subDayMin, subDayMax,
         lastRechargeHourMin, lastRechargeHourMax, groupChatNames, groupChatBeginTime, groupChatEndTime, groupChatHourMin, groupChatHourMax, 
-        groupChatUserMin, groupChatUserMax, lastReadHourMin, lastReadHourMax, lastReadTimeMin, lastReadTimeMax,
+        groupChatUserMin, groupChatUserMax, lastReadHourMin, lastReadHourMax, lastReadTimeMin, lastReadTimeMax, firstAddGroupTimeMin, firstAddGroupTimeMax,
+        lastAddGroupTimeMin, lastAddGroupTimeMax, lastExitTimeMin, lastExitTimeMax, firstAddGroupHourRangeMin, firstAddGroupHourRangeMax,
+        lastAddGroupHourRangeMin, lastAddGroupHourRangeMax, lastExitHourRangeMin, lastExitHourRangeMax, addGroupCountMin, addGroupCountMax,
+        exitGroupCountMin, exitGroupCountMax, retentionGroupCountMin, retentionGroupCountMax,
         ...params
     } = data
 
@@ -168,6 +216,33 @@ export const resetFilterUserData = (data: { [x: string]: any }): ContentProps =>
     if (groupChatUserMin || groupChatUserMax) {
         newData.groupChatUser = { groupChatUserMin, groupChatUserMax }
     }
+    if (firstAddGroupTimeMin || firstAddGroupTimeMax) {
+        newData.firstAddGroupTime = { firstAddGroupTimeMin, firstAddGroupTimeMax }
+    }
+    if (lastAddGroupTimeMin || lastAddGroupTimeMax) {
+        newData.lastAddGroupTime = { lastAddGroupTimeMin, lastAddGroupTimeMax }
+    }
+    if (lastExitTimeMin || lastExitTimeMax) {
+        newData.lastExitTime = { lastExitTimeMin, lastExitTimeMax }
+    }
+    if (firstAddGroupHourRangeMin || firstAddGroupHourRangeMax) {
+        newData.firstAddGroupHourRange = { firstAddGroupHourRangeMin, firstAddGroupHourRangeMax }
+    }
+    if (lastAddGroupHourRangeMin || lastAddGroupHourRangeMax) {
+        newData.lastAddGroupHourRange = { lastAddGroupHourRangeMin, lastAddGroupHourRangeMax }
+    }
+    if (lastExitHourRangeMin || lastExitHourRangeMax) {
+        newData.lastExitHourRange = { lastExitHourRangeMin, lastExitHourRangeMax }
+    }
+    if (addGroupCountMin || addGroupCountMax) {
+        newData.addGroupCount = { addGroupCountMin, addGroupCountMax }
+    }
+    if (exitGroupCountMin || exitGroupCountMax) {
+        newData.exitGroupCount = { exitGroupCountMin, exitGroupCountMax }
+    }
+    if (retentionGroupCountMin || retentionGroupCountMax) {
+        newData.retentionGroupCount = { retentionGroupCountMin, retentionGroupCountMax }
+    }
     return newData
 }
 
@@ -290,6 +365,35 @@ const FilterUserTooltip: React.FC<Props> = (props) => {
         {content?.groupChatUser && <div>
             <strong>群人数:</strong><span>{content?.groupChatUser?.groupChatUserMin ? content?.groupChatUser?.groupChatUserMin : '不限'} - {content?.groupChatUser?.groupChatUserMax ? content?.groupChatUser?.groupChatUserMax : '不限'}</span>
         </div>}
+
+        {content?.firstAddGroupTime && <div>
+            <strong>首次拉群时间:</strong><span>{content?.firstAddGroupTime?.firstAddGroupTimeMin ? content?.firstAddGroupTime?.firstAddGroupTimeMin : '不限'} - {content?.firstAddGroupTime?.firstAddGroupTimeMax ? content?.firstAddGroupTime?.firstAddGroupTimeMax : '不限'}</span>
+        </div>}
+        {content?.lastAddGroupTime && <div>
+            <strong>最近拉群时间:</strong><span>{content?.lastAddGroupTime?.lastAddGroupTimeMin ? content?.lastAddGroupTime?.lastAddGroupTimeMin : '不限'} - {content?.lastAddGroupTime?.lastAddGroupTimeMax ? content?.lastAddGroupTime?.lastAddGroupTimeMax : '不限'}</span>
+        </div>}
+        {content?.lastExitTime && <div>
+            <strong>最近退群时间:</strong><span>{content?.lastExitTime?.lastExitTimeMin ? content?.lastExitTime?.lastExitTimeMin : '不限'} - {content?.lastExitTime?.lastExitTimeMax ? content?.lastExitTime?.lastExitTimeMax : '不限'}</span>
+        </div>}
+        {content?.firstAddGroupHourRange && <div>
+            <strong>首次拉群(最近N小时):</strong><span>{content?.firstAddGroupHourRange?.firstAddGroupHourRangeMin ? content?.firstAddGroupHourRange?.firstAddGroupHourRangeMin : '不限'} - {content?.firstAddGroupHourRange?.firstAddGroupHourRangeMax ? content?.firstAddGroupHourRange?.firstAddGroupHourRangeMax : '不限'}</span>
+        </div>}
+        {content?.lastAddGroupHourRange && <div>
+            <strong>最近拉群(最近N小时):</strong><span>{content?.lastAddGroupHourRange?.lastAddGroupHourRangeMin ? content?.lastAddGroupHourRange?.lastAddGroupHourRangeMin : '不限'} - {content?.lastAddGroupHourRange?.lastAddGroupHourRangeMax ? content?.lastAddGroupHourRange?.lastAddGroupHourRangeMax : '不限'}</span>
+        </div>}
+        {content?.lastExitHourRange && <div>
+            <strong>最近退群(最近N小时):</strong><span>{content?.lastExitHourRange?.lastExitHourRangeMin ? content?.lastExitHourRange?.lastExitHourRangeMin : '不限'} - {content?.lastExitHourRange?.lastExitHourRangeMax ? content?.lastExitHourRange?.lastExitHourRangeMax : '不限'}</span>
+        </div>}
+        {content?.addGroupCount && <div>
+            <strong>进群次数:</strong><span>{content?.addGroupCount?.addGroupCountMin ? content?.addGroupCount?.addGroupCountMin : '不限'} - {content?.addGroupCount?.addGroupCountMax ? content?.addGroupCount?.addGroupCountMax : '不限'}</span>
+        </div>}
+        {content?.exitGroupCount && <div>
+            <strong>退群次数:</strong><span>{content?.exitGroupCount?.exitGroupCountMin ? content?.exitGroupCount?.exitGroupCountMin : '不限'} - {content?.exitGroupCount?.exitGroupCountMax ? content?.exitGroupCount?.exitGroupCountMax : '不限'}</span>
+        </div>}
+        {content?.retentionGroupCount && <div>
+            <strong>留存群聊数:</strong><span>{content?.retentionGroupCount?.retentionGroupCountMin ? content?.retentionGroupCount?.retentionGroupCountMin : '不限'} - {content?.retentionGroupCount?.retentionGroupCountMax ? content?.retentionGroupCount?.retentionGroupCountMax : '不限'}</span>
+        </div>}
+
         {content?.unlimited && <div>
             <strong>不限:</strong><span>{content?.unlimited}</span>
         </div>}

+ 111 - 1
src/pages/weComTask/components/filterUser/newFiterUser.tsx

@@ -67,7 +67,11 @@ const NewFilterUser: React.FC<NewFilterUserProps> = ({ bookCityList, configType
             console.log(values)
             const { configName, ...configContent } = values
             if (configContent && Object.keys(configContent).length > 0 && Object.keys(configContent).some(key => configContent[key])) {
-                const { beginTime, endTime, lastRechargeTime, lastReadTime, groupChatNames, groupChatTime, ...params } = configContent
+                const { 
+                    beginTime, endTime, lastRechargeTime, lastReadTime, groupChatNames, groupChatTime, firstAddGroupTime,
+                    lastAddGroupTime, lastExitTime,
+                    ...params 
+                } = configContent
                 const dta = {
                     ...params
                 }
@@ -92,6 +96,18 @@ const NewFilterUser: React.FC<NewFilterUserProps> = ({ bookCityList, configType
                     dta.groupChatBeginTime = dayjs(groupChatTime[0]).format('YYYY-MM-DD');
                     dta.groupChatEndTime = dayjs(groupChatTime[1]).format('YYYY-MM-DD');
                 }
+                if (firstAddGroupTime?.length > 1) {
+                    dta.firstAddGroupTimeMin = dayjs(firstAddGroupTime[0]).format('YYYY-MM-DD');
+                    dta.firstAddGroupTimeMax = dayjs(firstAddGroupTime[1]).format('YYYY-MM-DD');
+                }
+                if (lastAddGroupTime?.length > 1) {
+                    dta.lastAddGroupTimeMin = dayjs(lastAddGroupTime[0]).format('YYYY-MM-DD');
+                    dta.lastAddGroupTimeMax = dayjs(lastAddGroupTime[1]).format('YYYY-MM-DD');
+                }
+                if (lastExitTime?.length > 1) {
+                    dta.lastExitTimeMin = dayjs(lastExitTime[0]).format('YYYY-MM-DD');
+                    dta.lastExitTimeMax = dayjs(lastExitTime[1]).format('YYYY-MM-DD');
+                }
 
                 // 直接新增
                 if (isBackVal && !isSave) {
@@ -458,6 +474,100 @@ const NewFilterUser: React.FC<NewFilterUserProps> = ({ bookCityList, configType
                         />
                     </Form.Item>
                 </div>
+
+                <div className={style.newSpace}>
+                    <Form.Item name="firstAddGroupTime" label={<strong>首次拉群时间</strong>} style={{ marginBottom: 0 }}>
+                        <DatePicker.RangePicker placeholder={["首次拉群时间开始", "首次拉群时间结束"]} />
+                    </Form.Item>
+                </div>
+                <div className={style.newSpace}>
+                    <Form.Item name="lastAddGroupTime" label={<strong>最近拉群时间</strong>} style={{ marginBottom: 0 }}>
+                        <DatePicker.RangePicker placeholder={["最近拉群时间开始", "最近拉群时间结束"]} />
+                    </Form.Item>
+                </div>
+                <div className={style.newSpace}>
+                    <Form.Item name="lastExitTime" label={<strong>最近退群时间</strong>} style={{ marginBottom: 0 }}>
+                        <DatePicker.RangePicker placeholder={["最近退群时间开始", "最近退群时间结束"]} />
+                    </Form.Item>
+                </div>
+                <div className={style.newSpace}>
+                    <Form.Item label={<strong>首次拉群(最近N小时)</strong>} style={{ marginBottom: 0 }}>
+                        <Space>
+                            <Form.Item name="firstAddGroupHourRangeMin" noStyle>
+                                <InputNumber placeholder="首次拉群-最小" style={{ width: 200 }} />
+                            </Form.Item>
+                            <span>-</span>
+                            <Form.Item name="firstAddGroupHourRangeMax" noStyle>
+                                <InputNumber placeholder="首次拉群-最大" style={{ width: 200 }} />
+                            </Form.Item>
+                        </Space>
+                    </Form.Item>
+                </div>
+                <div className={style.newSpace}>
+                    <Form.Item label={<strong>最近拉群(最近N小时)</strong>} style={{ marginBottom: 0 }}>
+                        <Space>
+                            <Form.Item name="lastAddGroupHourRangeMin" noStyle>
+                                <InputNumber placeholder="最近拉群-最小" style={{ width: 200 }} />
+                            </Form.Item>
+                            <span>-</span>
+                            <Form.Item name="lastAddGroupHourRangeMax" noStyle>
+                                <InputNumber placeholder="最近拉群-最大" style={{ width: 200 }} />
+                            </Form.Item>
+                        </Space>
+                    </Form.Item>
+                </div>
+                <div className={style.newSpace}>
+                    <Form.Item label={<strong>最近退群(最近N小时)</strong>} style={{ marginBottom: 0 }}>
+                        <Space>
+                            <Form.Item name="lastExitHourRangeMin" noStyle>
+                                <InputNumber placeholder="最近退群-最小" style={{ width: 200 }} />
+                            </Form.Item>
+                            <span>-</span>
+                            <Form.Item name="lastExitHourRangeMax" noStyle>
+                                <InputNumber placeholder="最近退群-最大" style={{ width: 200 }} />
+                            </Form.Item>
+                        </Space>
+                    </Form.Item>
+                </div>
+                <div className={style.newSpace}>
+                    <Form.Item label={<strong>进群次数</strong>} style={{ marginBottom: 0 }}>
+                        <Space>
+                            <Form.Item name="addGroupCountMin" noStyle>
+                                <InputNumber placeholder="进群次数-最小" style={{ width: 200 }} />
+                            </Form.Item>
+                            <span>-</span>
+                            <Form.Item name="addGroupCountMax" noStyle>
+                                <InputNumber placeholder="进群次数-最大" style={{ width: 200 }} />
+                            </Form.Item>
+                        </Space>
+                    </Form.Item>
+                </div>
+                <div className={style.newSpace}>
+                    <Form.Item label={<strong>退群次数</strong>} style={{ marginBottom: 0 }}>
+                        <Space>
+                            <Form.Item name="exitGroupCountMin" noStyle>
+                                <InputNumber placeholder="退群次数-最小" style={{ width: 200 }} />
+                            </Form.Item>
+                            <span>-</span>
+                            <Form.Item name="exitGroupCountMax" noStyle>
+                                <InputNumber placeholder="退群次数-最大" style={{ width: 200 }} />
+                            </Form.Item>
+                        </Space>
+                    </Form.Item>
+                </div>
+                <div className={style.newSpace}>
+                    <Form.Item label={<strong>留存群聊数</strong>} style={{ marginBottom: 0 }}>
+                        <Space>
+                            <Form.Item name="retentionGroupCountMin" noStyle>
+                                <InputNumber placeholder="留存群聊数-最小" style={{ width: 200 }} />
+                            </Form.Item>
+                            <span>-</span>
+                            <Form.Item name="retentionGroupCountMax" noStyle>
+                                <InputNumber placeholder="留存群聊数-最大" style={{ width: 200 }} />
+                            </Form.Item>
+                        </Space>
+                    </Form.Item>
+                </div>
             </>}
         </Form>
     </Modal>