|
@@ -11,6 +11,9 @@ import FilterUserText from '@/pages/weComTask/components/filterUser/filterUserTe
|
|
import { RcFile } from 'antd/es/upload';
|
|
import { RcFile } from 'antd/es/upload';
|
|
import { groupBy, readFileAsBuffer } from '@/utils/utils';
|
|
import { groupBy, readFileAsBuffer } from '@/utils/utils';
|
|
import { saveAs } from 'file-saver';
|
|
import { saveAs } from 'file-saver';
|
|
|
|
+import SettingsFriends from './settingsFriends';
|
|
|
|
+import PreviewFriendsStrategy from './previewFriendsStrategy';
|
|
|
|
+import ShowFriendsContent from './showFriendsContent';
|
|
|
|
|
|
const Friends: React.FC = () => {
|
|
const Friends: React.FC = () => {
|
|
|
|
|
|
@@ -24,6 +27,257 @@ const Friends: React.FC = () => {
|
|
const [downloadLoading, setDownloadLoading] = useState<boolean>(false)
|
|
const [downloadLoading, setDownloadLoading] = useState<boolean>(false)
|
|
/***************************************************/
|
|
/***************************************************/
|
|
|
|
|
|
|
|
+ const exportExcel = async () => {
|
|
|
|
+ setDownloadLoading(true)
|
|
|
|
+ const workbook = new ExcelJS.Workbook(); // 创建空工作簿
|
|
|
|
+ const worksheet = workbook.addWorksheet('Sheet1'); // 添加工作表
|
|
|
|
+ const headerRowIndex = 1; // 表头行索引
|
|
|
|
+
|
|
|
|
+ // 表头冻结
|
|
|
|
+ worksheet.views = [
|
|
|
|
+ {
|
|
|
|
+ state: 'frozen',
|
|
|
|
+ ySplit: 1, // 冻结行数
|
|
|
|
+ topLeftCell: 'A2' // 冻结后可见区域的起始单元格
|
|
|
|
+ }
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ // 设置全局禁止
|
|
|
|
+ worksheet.protect('yourPwd', {
|
|
|
|
+ deleteColumns: false, // 禁止删除列
|
|
|
|
+ sort: false, // 禁止排序
|
|
|
|
+ autoFilter: false // 禁止自动筛选
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ worksheet.columns = [
|
|
|
|
+ { key: 'A1', width: 20, header: '账号' },
|
|
|
|
+ { key: 'A2', width: 20, header: '群发标题' },
|
|
|
|
+ { key: 'A3', width: 30, header: '策略信息' },
|
|
|
|
+ { key: 'A4', width: 40, header: '发送对象' },
|
|
|
|
+ { key: 'A5', width: 70, header: '群发内容' },
|
|
|
|
+ { key: 'A6', width: 30, header: '图文链接' },
|
|
|
|
+ { key: 'A7', width: 30, header: '小程序APPID' },
|
|
|
|
+ { key: 'A8', width: 30, header: '小程序路径' },
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ // 表头设置样式
|
|
|
|
+ worksheet.getRow(headerRowIndex).height = 30;
|
|
|
|
+ Array(8).fill(0).forEach((_, index) => {
|
|
|
|
+ const col = index + 1; // 从第1列开始
|
|
|
|
+ // 设置表头字体样式
|
|
|
|
+ worksheet.getCell(headerRowIndex, col).style = index >= 5 ? headerJsMustStyle as any : headerJsStyle as any;
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ const data = getGroupData(settings)
|
|
|
|
+ console.log('数据', data)
|
|
|
|
+
|
|
|
|
+ const corpUserListLength = settings?.corpUsers?.length || 0;
|
|
|
|
+ const dataLength = data.length || 0;
|
|
|
|
+ // 合并单元集合
|
|
|
|
+ const mergeCells = [];
|
|
|
|
+ // 解放填写限制区域
|
|
|
|
+ const unLockArea = [];
|
|
|
|
+ let dataRow = 1
|
|
|
|
+ // 数据内容
|
|
|
|
+ settings?.corpUsers?.forEach((item, i) => {
|
|
|
|
+ // 1、客服号 群发标题
|
|
|
|
+
|
|
|
|
+ const startRow = 2 + (i * dataLength)
|
|
|
|
+ const endRow = startRow + dataLength - 1
|
|
|
|
+ mergeCells.push({
|
|
|
|
+ startRow,
|
|
|
|
+ startColumn: 1,
|
|
|
|
+ endRow,
|
|
|
|
+ endColumn: 1,
|
|
|
|
+ })
|
|
|
|
+ mergeCells.push({
|
|
|
|
+ startRow,
|
|
|
|
+ startColumn: 2,
|
|
|
|
+ endRow,
|
|
|
|
+ endColumn: 2,
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ let strategyIndex = 0
|
|
|
|
+
|
|
|
|
+ data.forEach((dataItem, index, row) => {
|
|
|
|
+ if (strategyIndex !== dataItem.strategyIndex) {
|
|
|
|
+ const startRow = i * row.length + (index + 2)
|
|
|
|
+ mergeCells.push({
|
|
|
|
+ startRow,
|
|
|
|
+ startColumn: 3,
|
|
|
|
+ endRow: startRow + dataItem.strategyDataCount - 1,
|
|
|
|
+ endColumn: 3,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ if (dataItem.sendDataRowSpan) {
|
|
|
|
+ const startRow = i * row.length + (index + 2)
|
|
|
|
+ mergeCells.push({
|
|
|
|
+ startRow,
|
|
|
|
+ startColumn: 4,
|
|
|
|
+ endRow: startRow + dataItem.sendDataRowSpan - 1,
|
|
|
|
+ endColumn: 4,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ const mediaItem = JSON.parse(JSON.stringify(dataItem?.content?.attachmentList || []))
|
|
|
|
+ if (dataItem?.content?.text?.content) {
|
|
|
|
+ mediaItem.push({
|
|
|
|
+ msgType: 'TASK_CONTENT_TEXT',
|
|
|
|
+ textContent: dataItem?.content?.text?.content
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ let linkPlaceholder = '<空>'
|
|
|
|
+ let miniprogramPlaceholder = '<空>'
|
|
|
|
+ const contentRichText = mediaItem.map(item => {
|
|
|
|
+ // 'TASK_CONTENT_TEXT' | 'TASK_CONTENT_IMAGE' | 'TASK_CONTENT_LINK' | 'TASK_STATUS_MINIPROGRAM' | 'TASK_STATUS_VIDEO' | 'TASK_STATUS_FILE'
|
|
|
|
+ switch (item.msgType) {
|
|
|
|
+ case 'TASK_CONTENT_LINK':
|
|
|
|
+ linkPlaceholder = '请输入'
|
|
|
|
+ return { text: `链接:${item.link.title}_${item.link.desc}\n`, font: { color: { argb: "FF0000" } } }
|
|
|
|
+ case 'TASK_STATUS_MINIPROGRAM':
|
|
|
|
+ miniprogramPlaceholder = '请输入'
|
|
|
|
+ return { text: `小程序:${item.miniprogram.title}\n`, font: { color: { argb: "FF0000" } } }
|
|
|
|
+ case 'TASK_STATUS_FILE':
|
|
|
|
+ return { text: `文件:${item.file.fileUrl}\n` }
|
|
|
|
+ case 'TASK_STATUS_VIDEO':
|
|
|
|
+ return { text: `视频:${item.video.videoUrl}\n` }
|
|
|
|
+ case 'TASK_CONTENT_IMAGE':
|
|
|
|
+ return { text: `图片:${item.image.picUrl}\n` }
|
|
|
|
+ case 'TASK_CONTENT_TEXT':
|
|
|
|
+ return { text: `文本:${item.textContent}\n` }
|
|
|
|
+ default:
|
|
|
|
+ return { text: `该类型没有请联系管理员` }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ const richText = {
|
|
|
|
+ richText: [
|
|
|
|
+ { text: `(内容${dataItem?.contentIndex})\n`, font: { bold: true } },
|
|
|
|
+ ...contentRichText
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (linkPlaceholder !== '<空>') {
|
|
|
|
+ unLockArea.push(`${dataRow}_6`)
|
|
|
|
+ }
|
|
|
|
+ if (miniprogramPlaceholder !== '<空>') {
|
|
|
|
+ unLockArea.push(`${dataRow}_7`, `${dataRow}_8`)
|
|
|
|
+ }
|
|
|
|
+ dataRow++;
|
|
|
|
+ strategyIndex = dataItem.strategyIndex
|
|
|
|
+ worksheet.addRow([
|
|
|
|
+ // 账号
|
|
|
|
+ `${item.name}(ID:${item.corpUserId})`,
|
|
|
|
+ // 群发标题
|
|
|
|
+ `${dataItem?.groupSendName}`,
|
|
|
|
+ // 策略信息
|
|
|
|
+ {
|
|
|
|
+ richText: [
|
|
|
|
+ { text: `(策略${dataItem?.strategyIndex})\n`, font: { bold: true } },
|
|
|
|
+ { text: `名称:${dataItem?.strategyData?.strategyName || '<空>'}\n` },
|
|
|
|
+ {
|
|
|
|
+ text: (`执行类型:${TIME_TYPE[dataItem?.strategyData?.timeRepeatType]}\n`) +
|
|
|
|
+ (dataItem?.strategyData?.sendDay ? `执行时间:${dataItem?.strategyData?.sendDay}\n` : '') +
|
|
|
|
+ (dataItem?.strategyData?.startTime ? `执行日期:${dataItem?.strategyData?.startTime}~${dataItem?.strategyData?.endTime ? dataItem?.strategyData?.endTime : '长期执行'}\n` : '') +
|
|
|
|
+ (dataItem?.strategyData?.sendTime ? '执行时间:' + dataItem?.strategyData?.sendTime + '\n' : '') +
|
|
|
|
+ (dataItem?.strategyData?.repeatArray ? `执行天数:${dataItem?.strategyData?.repeatArray.join('、')}\n` : '')
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ // 发送对象
|
|
|
|
+ {
|
|
|
|
+ richText: [
|
|
|
|
+ { text: `(发送对象${dataItem?.sendDataIndex})\n`, font: { bold: true } },
|
|
|
|
+ { text: `发送模式:${welcomeContentData?.find(i => i.value === dataItem?.sendMode)?.label}\n` },
|
|
|
|
+ {
|
|
|
|
+ text: `类型:${dataItem?.sendData?.externalUserType === 'all' ? '全部' : '指定'}\n` +
|
|
|
|
+ (dataItem?.sendData?.externalUserType === 'specify' && dataItem?.sendData?.externalUserFilter ? FilterUserText({
|
|
|
|
+ data: dataItem?.sendData?.externalUserFilter?.configContent,
|
|
|
|
+ configName: dataItem?.sendData?.externalUserFilter?.configName,
|
|
|
|
+ bookCityList: bookPlatForm?.map(item => ({ label: item.platformName, value: item.platformKey })),
|
|
|
|
+ bookPlatForm,
|
|
|
|
+ bookList
|
|
|
|
+ }) : '')
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ // 群发内容
|
|
|
|
+ richText,
|
|
|
|
+ // 图文链接
|
|
|
|
+ linkPlaceholder,
|
|
|
|
+ // 小程序APPID
|
|
|
|
+ miniprogramPlaceholder,
|
|
|
|
+ // 小程序路径
|
|
|
|
+ miniprogramPlaceholder
|
|
|
|
+ ])
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ // Array(corpUserListLength * dataLength).fill(0).forEach((_, index) => {
|
|
|
|
+ // worksheet.getRow(index + headerRowIndex + 1).height = 100; // 设置行高
|
|
|
|
+ // worksheet.getRow(index + headerRowIndex + 1).alignment = {
|
|
|
|
+ // vertical: 'middle',
|
|
|
|
+ // wrapText: true
|
|
|
|
+ // }
|
|
|
|
+ // // 分组设置背景色
|
|
|
|
+ // if (index % (dataLength * 2) < dataLength) {
|
|
|
|
+ // worksheet.getRow(index + headerRowIndex + 1).eachCell(function (cell, rowNumber) {
|
|
|
|
+ // if (rowNumber <= 8) {
|
|
|
|
+ // cell.border = {
|
|
|
|
+ // top: { style: 'thin', color: { argb: 'D4D4D4' } },
|
|
|
|
+ // bottom: { style: 'thin', color: { argb: 'D4D4D4' } },
|
|
|
|
+ // left: { style: 'thin', color: { argb: 'D4D4D4' } },
|
|
|
|
+ // right: { style: 'thin', color: { argb: 'D4D4D4' } }
|
|
|
|
+ // }
|
|
|
|
+ // cell.fill = {
|
|
|
|
+ // type: 'pattern',
|
|
|
|
+ // pattern: 'solid',
|
|
|
|
+ // fgColor: { argb: 'f0f0f0' }
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ // } else {
|
|
|
|
+ // worksheet.getRow(index + headerRowIndex + 1).eachCell(function (cell, rowNumber) {
|
|
|
|
+ // if (rowNumber <= 8) {
|
|
|
|
+ // cell.border = {
|
|
|
|
+ // top: { style: 'thin', color: { argb: 'D4D4D4' } },
|
|
|
|
+ // bottom: { style: 'thin', color: { argb: 'D4D4D4' } },
|
|
|
|
+ // left: { style: 'thin', color: { argb: 'D4D4D4' } },
|
|
|
|
+ // right: { style: 'thin', color: { argb: 'D4D4D4' } }
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+
|
|
|
|
+ // // 合并单元格
|
|
|
|
+ // mergeCells.forEach(({ startRow, startColumn, endRow, endColumn }) => {
|
|
|
|
+ // worksheet.mergeCells(startRow, startColumn, endRow, endColumn); // 合并单元格
|
|
|
|
+ // })
|
|
|
|
+
|
|
|
|
+ // // 设置可填写区域
|
|
|
|
+ // for (let rowNum = 1; rowNum <= corpUserListLength * dataLength; rowNum++) {
|
|
|
|
+ // for (let colNum = 1; colNum <= 3; colNum++) {
|
|
|
|
+ // if (unLockArea.includes(`${rowNum}_${colNum + 5}`)) {
|
|
|
|
+ // const cell = worksheet.getCell(rowNum + 1, colNum + 5);
|
|
|
|
+ // cell.protection = { locked: false };
|
|
|
|
+ // cell.fill = {
|
|
|
|
+ // type: 'pattern',
|
|
|
|
+ // pattern: 'solid',
|
|
|
|
+ // fgColor: { argb: 'ffadd2' }
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // 生成文件内容
|
|
|
|
+ workbook.xlsx.writeBuffer().then(buffer => {
|
|
|
|
+ // 通过 Blob 下载
|
|
|
|
+ const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
|
|
|
+ saveAs(blob, `朋友圈内容配置_${dayjs().format('YYYYMMDDHHmmss')}.xlsx`);
|
|
|
|
+ setTimeout(() => setDownloadLoading(false), 1000)
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
return <>
|
|
return <>
|
|
<div className={`${style.settingsBody_content_row}`}>
|
|
<div className={`${style.settingsBody_content_row}`}>
|
|
<div className={`${style.settingsBody_content_col}`}>
|
|
<div className={`${style.settingsBody_content_col}`}>
|
|
@@ -33,9 +287,9 @@ const Friends: React.FC = () => {
|
|
<div className={style.detail}>
|
|
<div className={style.detail}>
|
|
<div className={style.detail_title}>朋友圈策略配置</div>
|
|
<div className={style.detail_title}>朋友圈策略配置</div>
|
|
<div className={style.detail_body}>
|
|
<div className={style.detail_body}>
|
|
- {/* {settings?.massSendingStrategy && Object.keys(settings?.massSendingStrategy).length > 0 ? <>
|
|
|
|
- <PreviewMassSendingStrategy massSendingStrategy={settings?.massSendingStrategy} />
|
|
|
|
- </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />} */}
|
|
|
|
|
|
+ {settings?.friendsStrategy && Object.keys(settings?.friendsStrategy).length > 0 ? <>
|
|
|
|
+ <PreviewFriendsStrategy friendsStrategy={settings?.friendsStrategy} />
|
|
|
|
+ </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div className={style.detail_footer}>
|
|
<div className={style.detail_footer}>
|
|
@@ -45,15 +299,15 @@ const Friends: React.FC = () => {
|
|
<div className={`${style.settingsBody_content_col}`}>
|
|
<div className={`${style.settingsBody_content_col}`}>
|
|
<div className={style.title}>
|
|
<div className={style.title}>
|
|
<span></span>
|
|
<span></span>
|
|
- {/* {(settings?.massSendingStrategy && Object.keys(settings?.massSendingStrategy).length > 0) && <Space>
|
|
|
|
- {settings?.massSendingContent?.massSendingContentDTO?.some(item => item?.sendContentDto?.some(si => si?.contentDTO?.some(i => i?.attachmentList?.some(a => ['TASK_CONTENT_LINK', 'TASK_STATUS_MINIPROGRAM'].includes(a?.msgType))))) && <>
|
|
|
|
|
|
+ {(settings?.friendsStrategy && Object.keys(settings?.friendsStrategy).length > 0) && <Space>
|
|
|
|
+ {settings?.friendsContent?.friendsContentDTO?.some(item => item?.contentDTO?.some(i => i?.attachmentList?.some(a => ['link', 'miniprogram'].includes(a?.mediaType)))) && <>
|
|
<Button
|
|
<Button
|
|
type="link"
|
|
type="link"
|
|
style={{ padding: 0, fontSize: 12 }}
|
|
style={{ padding: 0, fontSize: 12 }}
|
|
loading={downloadLoading}
|
|
loading={downloadLoading}
|
|
onClick={() => { exportExcel() }}
|
|
onClick={() => { exportExcel() }}
|
|
>下载</Button>
|
|
>下载</Button>
|
|
- <Upload
|
|
|
|
|
|
+ {/* <Upload
|
|
accept={'.xlsx'}
|
|
accept={'.xlsx'}
|
|
action="#"
|
|
action="#"
|
|
showUploadList={false}
|
|
showUploadList={false}
|
|
@@ -67,7 +321,7 @@ const Friends: React.FC = () => {
|
|
type="link"
|
|
type="link"
|
|
style={{ padding: 0, fontSize: 12 }}
|
|
style={{ padding: 0, fontSize: 12 }}
|
|
>{settings?.corpUsers?.every(item => item?.groupMsgContent?.length) ? 'Excel内容已上传,重新上传' : '上传Excel'}</Button>
|
|
>{settings?.corpUsers?.every(item => item?.groupMsgContent?.length) ? 'Excel内容已上传,重新上传' : '上传Excel'}</Button>
|
|
- </Upload>
|
|
|
|
|
|
+ </Upload> */}
|
|
</>}
|
|
</>}
|
|
<Button
|
|
<Button
|
|
type="link"
|
|
type="link"
|
|
@@ -75,29 +329,29 @@ const Friends: React.FC = () => {
|
|
style={{ padding: 0, fontSize: 12 }}
|
|
style={{ padding: 0, fontSize: 12 }}
|
|
onClick={() => {
|
|
onClick={() => {
|
|
const corpUsers = settings?.corpUsers?.map(item => {
|
|
const corpUsers = settings?.corpUsers?.map(item => {
|
|
- delete item?.groupMsgContent
|
|
|
|
|
|
+ delete item?.friendsMsgContent
|
|
return item
|
|
return item
|
|
})
|
|
})
|
|
setSettings({
|
|
setSettings({
|
|
...settings,
|
|
...settings,
|
|
corpUsers,
|
|
corpUsers,
|
|
- massSendingStrategy: undefined,
|
|
|
|
- massSendingContent: undefined
|
|
|
|
|
|
+ friendsStrategy: undefined,
|
|
|
|
+ friendsContent: undefined
|
|
})
|
|
})
|
|
onPreviewReset()
|
|
onPreviewReset()
|
|
}}
|
|
}}
|
|
>清空</Button>
|
|
>清空</Button>
|
|
- </Space>} */}
|
|
|
|
|
|
+ </Space>}
|
|
</div>
|
|
</div>
|
|
<div className={style.detail}>
|
|
<div className={style.detail}>
|
|
<div className={style.detail_title}>朋友圈内容配置</div>
|
|
<div className={style.detail_title}>朋友圈内容配置</div>
|
|
<div className={style.detail_body} style={{ padding: 0 }}>
|
|
<div className={style.detail_body} style={{ padding: 0 }}>
|
|
- {/* {settings?.massSendingContent && Object.keys(settings?.massSendingContent) ? <>
|
|
|
|
- <ShowContent
|
|
|
|
- strategySettings={settings?.massSendingStrategy?.strategySettings}
|
|
|
|
- massSendingContent={settings?.massSendingContent}
|
|
|
|
|
|
+ {settings?.friendsContent && Object.keys(settings?.friendsContent) ? <>
|
|
|
|
+ <ShowFriendsContent
|
|
|
|
+ strategySettings={settings?.friendsStrategy?.strategySettings}
|
|
|
|
+ friendsContent={settings?.friendsContent}
|
|
/>
|
|
/>
|
|
- </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />} */}
|
|
|
|
|
|
+ </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div className={style.detail_footer}>
|
|
<div className={style.detail_footer}>
|
|
@@ -106,7 +360,7 @@ const Friends: React.FC = () => {
|
|
style={{ padding: 0, fontSize: 12, color: token.colorPrimary }}
|
|
style={{ padding: 0, fontSize: 12, color: token.colorPrimary }}
|
|
size='small'
|
|
size='small'
|
|
onClick={() => {
|
|
onClick={() => {
|
|
- if (!(settings?.massSendingStrategy && Object.keys(settings?.massSendingStrategy))) {
|
|
|
|
|
|
+ if (!(settings?.friendsStrategy && Object.keys(settings?.friendsStrategy).length)) {
|
|
message.error('请先配置策略')
|
|
message.error('请先配置策略')
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -118,22 +372,22 @@ const Friends: React.FC = () => {
|
|
</div>
|
|
</div>
|
|
|
|
|
|
{/* 模板配置 */}
|
|
{/* 模板配置 */}
|
|
- {/* {newVisible && <SettingsMassSending
|
|
|
|
|
|
+ {newVisible && <SettingsFriends
|
|
visible={newVisible}
|
|
visible={newVisible}
|
|
createType={createType}
|
|
createType={createType}
|
|
value={{
|
|
value={{
|
|
- massSendingContent: settings?.massSendingContent,
|
|
|
|
- massSendingStrategy: settings?.massSendingStrategy
|
|
|
|
|
|
+ friendsContent: settings?.friendsContent,
|
|
|
|
+ friendsStrategy: settings?.friendsStrategy
|
|
}}
|
|
}}
|
|
onClose={() => {
|
|
onClose={() => {
|
|
setNewVisible(false)
|
|
setNewVisible(false)
|
|
}}
|
|
}}
|
|
onChange={(values, type) => {
|
|
onChange={(values, type) => {
|
|
const corpUsers = settings?.corpUsers?.map(item => {
|
|
const corpUsers = settings?.corpUsers?.map(item => {
|
|
- delete item?.groupMsgContent
|
|
|
|
|
|
+ delete item?.friendsMsgContent
|
|
return item
|
|
return item
|
|
})
|
|
})
|
|
- if (!values?.massSendingContent && settings?.corpUsers?.some(item => item?.groupMsgContent?.length)) {
|
|
|
|
|
|
+ if (!values?.friendsContent && settings?.corpUsers?.some(item => item?.friendsMsgContent?.length)) {
|
|
setSettings({
|
|
setSettings({
|
|
...settings,
|
|
...settings,
|
|
...values,
|
|
...values,
|
|
@@ -152,7 +406,7 @@ const Friends: React.FC = () => {
|
|
}
|
|
}
|
|
onPreviewReset()
|
|
onPreviewReset()
|
|
}}
|
|
}}
|
|
- />} */}
|
|
|
|
|
|
+ />}
|
|
</>
|
|
</>
|
|
};
|
|
};
|
|
|
|
|