|
@@ -1,5 +1,5 @@
|
|
|
import { inject, observer } from 'mobx-react';
|
|
|
-import React, { useEffect, useState } from '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 MassSending from './components/massSending';
|
|
@@ -32,22 +32,20 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
/***********************************************/
|
|
|
const navigate = useNavigate();
|
|
|
const { bookList, bookPlatForm } = toJS(weComTaskStore.data)
|
|
|
-
|
|
|
const [settings, setSettings] = useState<TASK_CREATE.SettingsProps>();
|
|
|
-
|
|
|
- console.log('settings--->', settings)
|
|
|
const { message, modal } = App.useApp()
|
|
|
const [msgJobTypeList, setMsgJobTypeList] = useState<{ value: string, label: string }[]>([])
|
|
|
const [previewData, setPreviewData] = useState<TASK_CREATE.previewDataProps>({})
|
|
|
const [subVisible, setSubVisible] = useState<boolean>(false) // 选择设置名称弹窗控制
|
|
|
const [eaVisible, setEaVisible] = useState<boolean>(false)
|
|
|
const [qwVisible, setQwVisible] = useState<boolean>(false)
|
|
|
- const [previewContent, setPreviewContent] = useState<{ groupMsgContent?: any[], welcomeMsgContent?: any[] }>({})
|
|
|
+ const [previewContent, setPreviewContent] = useState<{ groupMsgContent?: any[], welcomeMsgContent?: any[], externalUserTransferContent?: any[], }>({})
|
|
|
|
|
|
const welcomeMsgJobType = useAjax(() => welcomeMsgJobTypeApi())//获取欢迎语类型
|
|
|
|
|
|
const addTask = useAjax((params) => addTaskApi(params))
|
|
|
/***********************************************/
|
|
|
+ console.log('settings--->', settings, previewContent)
|
|
|
|
|
|
useEffect(() => {
|
|
|
const task = localStorage.getItem('TASK_CORP_CREATE')
|
|
@@ -74,23 +72,18 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
|
|
|
// 欢迎语
|
|
|
if (settings?.welcomeMsgTemplateDTO && Object.keys(settings?.welcomeMsgTemplateDTO).length) {
|
|
|
- if (settings?.welcomeMsgTemplateDTO?.mediaContentList?.some(item => item?.some(i => i?.mediaType === 'link' || i?.mediaType === 'miniprogram')) && settings?.corpUsers?.every(item => !item?.welcomeMsgContent?.length)) {
|
|
|
- message.error('请先上传欢迎语Excel内容')
|
|
|
- return
|
|
|
- }
|
|
|
const welcome = []
|
|
|
- if (!settings?.corpUsers?.every((item, i) => {
|
|
|
+ if (!settings?.corpUserGroups?.every((item, i) => {
|
|
|
return settings?.welcomeMsgTemplateDTO?.mediaContentList?.every((mediaItem, index, row) => {
|
|
|
- const welcomeMsgContent = item.welcomeMsgContent?.[index]
|
|
|
- if (mediaItem?.some(media => media?.mediaType === 'link' ? !welcomeMsgContent?.linkUrl : media?.mediaType === 'miniprogram' ? (!welcomeMsgContent?.miniprogramAppid || !welcomeMsgContent?.miniprogramPage) : false)) {
|
|
|
- message.error('欢迎语内容配置错误,请检查')
|
|
|
- return false
|
|
|
- }
|
|
|
+ const linkData = []
|
|
|
+ let isMiniProgram = false
|
|
|
const contentReactNode = mediaItem.map(item => {
|
|
|
switch (item.mediaType) {
|
|
|
case 'link':
|
|
|
+ linkData.push(item)
|
|
|
return `<span style="color: red">链接</span>`
|
|
|
case 'miniprogram':
|
|
|
+ isMiniProgram = true
|
|
|
return `<span style="color: red">小程序</span>`
|
|
|
case 'file':
|
|
|
return `<span>文件</span>`
|
|
@@ -108,10 +101,12 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
...settings?.welcomeMsgTemplateDTO,
|
|
|
sendData: mediaItem,
|
|
|
contentReactNode,
|
|
|
- welcomeMsgContent,
|
|
|
+ corpUsergroupIndex: i,
|
|
|
+ corpUserGroupName: `客服组${i + 1}`,
|
|
|
+ corpUserList: item.corpUsers,
|
|
|
+ linkData,
|
|
|
+ isMiniProgram,
|
|
|
contentIndex: index + 1,
|
|
|
- corpUserId: item.corpUserId,
|
|
|
- corpUserName: item.name,
|
|
|
bizType: settings?.bizType,
|
|
|
channel: settings?.channel,
|
|
|
platform: settings?.platform,
|
|
@@ -130,10 +125,6 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
|
|
|
// 群发
|
|
|
if ((settings?.massSendingContent && Object.keys(settings?.massSendingContent).length) && (settings?.massSendingStrategy && Object.keys(settings?.massSendingStrategy).length)) {
|
|
|
- // if (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?.corpUsers?.every(item => !item?.groupMsgContent?.length)) {
|
|
|
- // message.error('需要配置小程序、链接,请上传配置好的群发Excel文件')
|
|
|
- // return
|
|
|
- // }
|
|
|
const massSendingData = getGroupData(settings)
|
|
|
const massSending = []
|
|
|
if (!settings?.corpUserGroups?.every((item, i) => {
|
|
@@ -149,12 +140,12 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
textContent: dataItem?.content?.text?.content
|
|
|
})
|
|
|
}
|
|
|
- let isLink = false
|
|
|
+ const linkData = []
|
|
|
let isMiniProgram = false
|
|
|
const contentReactNode = mediaItem.map(item => {
|
|
|
switch (item.msgType) {
|
|
|
case 'TASK_CONTENT_LINK':
|
|
|
- isLink = true
|
|
|
+ linkData.push(item)
|
|
|
return `<span style="color: red">链接</span>`
|
|
|
case 'TASK_STATUS_MINIPROGRAM':
|
|
|
isMiniProgram = true
|
|
@@ -183,7 +174,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
platform: settings?.platform,
|
|
|
templateProductId: settings?.templateProductId,
|
|
|
id: i * row.length + (li + 1),
|
|
|
- isLink,
|
|
|
+ linkData,
|
|
|
isMiniProgram,
|
|
|
userRowSpan: li % row.length === 0 ? row.length : 0,
|
|
|
strategyRowSpan: strategyIndex !== dataItem.strategyIndex ? dataItem.strategyDataCount : 0
|
|
@@ -199,42 +190,35 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
}
|
|
|
|
|
|
// 是否有客户继承配置
|
|
|
- // if (settings?.userInherit && Object.keys(settings?.userInherit).length) {
|
|
|
- // if (settings?.corpUsers?.every(item => !item?.externalUserTransferContent?.length)) {
|
|
|
- // message.error('请上传配置好的客户继承Excel文件')
|
|
|
- // return
|
|
|
- // }
|
|
|
- // const userInData = getUserInDataData(settings?.userInherit?.schedulingStrategyDTO, settings?.userInherit?.taskName)
|
|
|
+ if (settings?.userInherit && Object.keys(settings?.userInherit).length) {
|
|
|
+ const userInData = getUserInDataData(settings?.userInherit?.schedulingStrategyDTO, settings?.userInherit?.taskName)
|
|
|
|
|
|
- // const userInherit = []
|
|
|
- // // 数据内容
|
|
|
- // if (!settings?.corpUsers?.every((item, i) => {
|
|
|
- // return userInData.every((dataItem, ii, row) => {
|
|
|
- // const externalUser = item.externalUserTransferContent?.[dataItem.strategyIndex - 1]?.[dataItem.inheritIndex - 1]
|
|
|
- // if (!externalUser || !externalUser?.corpUserName || !externalUser?.corpUserId) {
|
|
|
- // message.error('Excel配置错误,' + JSON.stringify(dataItem) + ',' + JSON.stringify(item.externalUserTransferContent))
|
|
|
- // return false
|
|
|
- // }
|
|
|
- // userInherit.push({
|
|
|
- // ...dataItem,
|
|
|
- // externalUser,
|
|
|
- // taskName: dataItem?.taskName,
|
|
|
- // corpUserId: item.corpUserId,
|
|
|
- // corpUserName: item.name,
|
|
|
- // bizType: settings?.bizType,
|
|
|
- // channel: settings?.channel,
|
|
|
- // platform: settings?.platform,
|
|
|
- // templateProductId: settings?.templateProductId,
|
|
|
- // id: i * row.length + (ii + 1)
|
|
|
- // })
|
|
|
- // return true
|
|
|
- // })
|
|
|
- // })) {
|
|
|
- // return
|
|
|
- // }
|
|
|
- // console.log('userInherit-->', userInherit)
|
|
|
- // newPreviewData.userInherit = userInherit
|
|
|
- // }
|
|
|
+ const userInherit = []
|
|
|
+ // 数据内容
|
|
|
+ if (!settings?.corpUserGroups?.every((item, i) => {
|
|
|
+ return userInData.every((dataItem, ii, row) => {
|
|
|
+
|
|
|
+ userInherit.push({
|
|
|
+ ...dataItem,
|
|
|
+ taskName: dataItem?.taskName,
|
|
|
+ corpUsergroupIndex: i,
|
|
|
+ corpUserGroupName: `客服组${i + 1}`,
|
|
|
+ corpUserList: item.corpUsers,
|
|
|
+ bizType: settings?.bizType,
|
|
|
+ channel: settings?.channel,
|
|
|
+ platform: settings?.platform,
|
|
|
+ templateProductId: settings?.templateProductId,
|
|
|
+ userRowSpan: ii === 0 ? row.length : 0,
|
|
|
+ id: i * row.length + (ii + 1)
|
|
|
+ })
|
|
|
+ return true
|
|
|
+ })
|
|
|
+ })) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ console.log('userInherit-->', userInherit)
|
|
|
+ newPreviewData.userInherit = userInherit
|
|
|
+ }
|
|
|
|
|
|
// 是否有高级群发
|
|
|
// if ((settings?.highMassSendingContent && Object.keys(settings?.highMassSendingContent).length) && (settings?.highMassSendingStrategy && Object.keys(settings?.highMassSendingStrategy).length)) {
|
|
@@ -309,132 +293,194 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
// }
|
|
|
|
|
|
// 是否有朋友圈任务
|
|
|
- if ((settings?.friendsContent && Object.keys(settings?.friendsContent).length) && (settings?.friendsStrategy && Object.keys(settings?.friendsStrategy).length)) {
|
|
|
- if (settings?.friendsContent?.friendsContentDTO?.some(item => item?.contentDTO?.some(i => i?.attachmentList?.some(a => ['link', 'miniprogram'].includes(a?.mediaType)))) && settings?.corpUsers?.every(item => !item?.friendsMsgContent?.length)) {
|
|
|
- message.error('朋友圈需要配置小程序、链接,请上传配置好的群发Excel文件')
|
|
|
- return
|
|
|
- }
|
|
|
- const friends = []
|
|
|
- let rowLength = 1
|
|
|
- if (!settings?.corpUsers?.every((item, i) => {
|
|
|
- let uIndex = 0
|
|
|
- const uLength = settings?.friendsStrategy?.strategySettings?.reduce((pre, _, i) => settings?.friendsContent?.friendsContentDTO?.[i]?.contentDTO?.length + pre, 0)
|
|
|
- return settings?.friendsStrategy?.strategySettings?.every((strategyItem, strategyIndex) => {
|
|
|
- const friendsContentDTO = settings?.friendsContent?.friendsContentDTO?.[strategyIndex]
|
|
|
- let sIndex = 0
|
|
|
- return friendsContentDTO.contentDTO.every((contentItem, contentIndex) => {
|
|
|
- const msgContent = item.friendsMsgContent?.[strategyIndex]?.[contentIndex]
|
|
|
- if (contentItem?.attachmentList?.length && contentItem?.attachmentList?.some(item => (item?.mediaType === 'link' ? !msgContent?.linkUrl : item?.mediaType === 'miniprogram' ? (!msgContent?.miniprogramAppid || !msgContent?.miniprogramPage) : false))) {
|
|
|
- message.error('朋友圈内容配置错误,请检查')
|
|
|
- return false
|
|
|
- }
|
|
|
+ // if ((settings?.friendsContent && Object.keys(settings?.friendsContent).length) && (settings?.friendsStrategy && Object.keys(settings?.friendsStrategy).length)) {
|
|
|
+ // if (settings?.friendsContent?.friendsContentDTO?.some(item => item?.contentDTO?.some(i => i?.attachmentList?.some(a => ['link', 'miniprogram'].includes(a?.mediaType)))) && settings?.corpUsers?.every(item => !item?.friendsMsgContent?.length)) {
|
|
|
+ // message.error('朋友圈需要配置小程序、链接,请上传配置好的群发Excel文件')
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // const friends = []
|
|
|
+ // let rowLength = 1
|
|
|
+ // if (!settings?.corpUsers?.every((item, i) => {
|
|
|
+ // let uIndex = 0
|
|
|
+ // const uLength = settings?.friendsStrategy?.strategySettings?.reduce((pre, _, i) => settings?.friendsContent?.friendsContentDTO?.[i]?.contentDTO?.length + pre, 0)
|
|
|
+ // return settings?.friendsStrategy?.strategySettings?.every((strategyItem, strategyIndex) => {
|
|
|
+ // const friendsContentDTO = settings?.friendsContent?.friendsContentDTO?.[strategyIndex]
|
|
|
+ // let sIndex = 0
|
|
|
+ // return friendsContentDTO.contentDTO.every((contentItem, contentIndex) => {
|
|
|
+ // const msgContent = item.friendsMsgContent?.[strategyIndex]?.[contentIndex]
|
|
|
+ // if (contentItem?.attachmentList?.length && contentItem?.attachmentList?.some(item => (item?.mediaType === 'link' ? !msgContent?.linkUrl : item?.mediaType === 'miniprogram' ? (!msgContent?.miniprogramAppid || !msgContent?.miniprogramPage) : false))) {
|
|
|
+ // message.error('朋友圈内容配置错误,请检查')
|
|
|
+ // return false
|
|
|
+ // }
|
|
|
|
|
|
- const mediaItem = JSON.parse(JSON.stringify(contentItem?.attachmentList || []))
|
|
|
- if (contentItem?.text?.content) {
|
|
|
- mediaItem.push({
|
|
|
- mediaType: 'text',
|
|
|
- textContent: contentItem?.text?.content
|
|
|
- })
|
|
|
- }
|
|
|
- const contentReactNode = mediaItem.map(item => {
|
|
|
- switch (item.mediaType) {
|
|
|
- case 'link':
|
|
|
- return `<span style="color: red">链接</span>`
|
|
|
- case 'miniprogram':
|
|
|
- return `<span style="color: red">小程序</span>`
|
|
|
- case 'file':
|
|
|
- return `<span>文件</span>`
|
|
|
- case 'video':
|
|
|
- return `<span>视频</span>`
|
|
|
- case 'image':
|
|
|
- return `<span>图片</span>`
|
|
|
- case 'text':
|
|
|
- return `<span>文本</span>`
|
|
|
- default:
|
|
|
- return `<span style="color: red">请联系管理员</span>`
|
|
|
- }
|
|
|
- })
|
|
|
+ // const mediaItem = JSON.parse(JSON.stringify(contentItem?.attachmentList || []))
|
|
|
+ // if (contentItem?.text?.content) {
|
|
|
+ // mediaItem.push({
|
|
|
+ // mediaType: 'text',
|
|
|
+ // textContent: contentItem?.text?.content
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // const contentReactNode = mediaItem.map(item => {
|
|
|
+ // switch (item.mediaType) {
|
|
|
+ // case 'link':
|
|
|
+ // return `<span style="color: red">链接</span>`
|
|
|
+ // case 'miniprogram':
|
|
|
+ // return `<span style="color: red">小程序</span>`
|
|
|
+ // case 'file':
|
|
|
+ // return `<span>文件</span>`
|
|
|
+ // case 'video':
|
|
|
+ // return `<span>视频</span>`
|
|
|
+ // case 'image':
|
|
|
+ // return `<span>图片</span>`
|
|
|
+ // case 'text':
|
|
|
+ // return `<span>文本</span>`
|
|
|
+ // default:
|
|
|
+ // return `<span style="color: red">请联系管理员</span>`
|
|
|
+ // }
|
|
|
+ // })
|
|
|
|
|
|
- friends.push({
|
|
|
- corpUserId: item.corpUserId,
|
|
|
- corpUserName: item.name,
|
|
|
- bizType: settings?.bizType,
|
|
|
- channel: settings?.channel,
|
|
|
- platform: settings?.platform,
|
|
|
- templateProductId: settings?.templateProductId,
|
|
|
- momentSendName: settings?.friendsStrategy?.momentSendName,
|
|
|
- strategyData: strategyItem,
|
|
|
- strategyIndex: strategyIndex,
|
|
|
- sendData: item?.friendsTagContent,
|
|
|
- contentReactNode,
|
|
|
- contentIndex,
|
|
|
- sendMode: friendsContentDTO?.sendMode,
|
|
|
- content: contentItem,
|
|
|
- friendsContent: msgContent,
|
|
|
- id: rowLength,
|
|
|
- userRowSpan: uIndex === 0 ? uLength : 0,
|
|
|
- strategyRowSpan: sIndex === 0 ? friendsContentDTO.contentDTO.length : 0
|
|
|
- })
|
|
|
- rowLength++;
|
|
|
- uIndex++;
|
|
|
- sIndex++;
|
|
|
- return true
|
|
|
- })
|
|
|
+ // friends.push({
|
|
|
+ // corpUserId: item.corpUserId,
|
|
|
+ // corpUserName: item.name,
|
|
|
+ // bizType: settings?.bizType,
|
|
|
+ // channel: settings?.channel,
|
|
|
+ // platform: settings?.platform,
|
|
|
+ // templateProductId: settings?.templateProductId,
|
|
|
+ // momentSendName: settings?.friendsStrategy?.momentSendName,
|
|
|
+ // strategyData: strategyItem,
|
|
|
+ // strategyIndex: strategyIndex,
|
|
|
+ // sendData: item?.friendsTagContent,
|
|
|
+ // contentReactNode,
|
|
|
+ // contentIndex,
|
|
|
+ // sendMode: friendsContentDTO?.sendMode,
|
|
|
+ // content: contentItem,
|
|
|
+ // friendsContent: msgContent,
|
|
|
+ // id: rowLength,
|
|
|
+ // userRowSpan: uIndex === 0 ? uLength : 0,
|
|
|
+ // strategyRowSpan: sIndex === 0 ? friendsContentDTO.contentDTO.length : 0
|
|
|
+ // })
|
|
|
+ // rowLength++;
|
|
|
+ // uIndex++;
|
|
|
+ // sIndex++;
|
|
|
+ // return true
|
|
|
+ // })
|
|
|
+ // })
|
|
|
+ // })) {
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // newPreviewData.friends = friends
|
|
|
+ // }
|
|
|
+ if (newPreviewData && Object.keys(newPreviewData).length) {
|
|
|
+ setPreviewData(newPreviewData)
|
|
|
+ } else {
|
|
|
+ message.error('请填写至少填写一项内容')
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置任务名称
|
|
|
+ const setTaskName = () => {
|
|
|
+ // 欢迎语
|
|
|
+ if (settings?.welcomeMsgTemplateDTO && Object.keys(settings?.welcomeMsgTemplateDTO).length) {
|
|
|
+ if (settings?.welcomeMsgTemplateDTO?.mediaContentList?.some(item => item?.some(i => i?.mediaType === 'link' || i?.mediaType === 'miniprogram')) && !(previewContent?.welcomeMsgContent?.length > 0)) {
|
|
|
+ message.error('请先上传欢迎语Excel内容')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (!settings?.corpUserGroups?.every((_, i) => {
|
|
|
+ return settings?.welcomeMsgTemplateDTO?.mediaContentList?.every((mediaItem, index) => {
|
|
|
+ const welcomeMsgContent = previewContent.welcomeMsgContent?.[i]?.[index]
|
|
|
+ if (mediaItem?.some(media => media?.mediaType === 'link' ? !welcomeMsgContent?.linkUrl : media?.mediaType === 'miniprogram' ? (!welcomeMsgContent?.miniprogramAppid || !welcomeMsgContent?.miniprogramPage) : false)) {
|
|
|
+ message.error('欢迎语内容配置错误,请检查')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
})
|
|
|
})) {
|
|
|
return
|
|
|
}
|
|
|
- newPreviewData.friends = friends
|
|
|
}
|
|
|
- if (newPreviewData && Object.keys(newPreviewData).length) {
|
|
|
- setPreviewData(newPreviewData)
|
|
|
- } else {
|
|
|
- message.error('请填写至少填写一项内容')
|
|
|
+ // 群发任务
|
|
|
+ if ((settings?.massSendingContent && Object.keys(settings?.massSendingContent).length) && (settings?.massSendingStrategy && Object.keys(settings?.massSendingStrategy).length)) {
|
|
|
+ if (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))))) && !(previewContent?.groupMsgContent?.length > 0)) {
|
|
|
+ message.error('需要配置小程序、链接,请认真填写')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const massSendingData = getGroupData(settings)
|
|
|
+ if (!settings?.corpUserGroups?.every((_, i) => {
|
|
|
+ return massSendingData.every((dataItem) => {
|
|
|
+ const groupMsgContent = previewContent?.groupMsgContent?.[i]?.[dataItem.strategyIndex - 1]?.[dataItem.sendDataIndex - 1]?.[dataItem.contentIndex - 1]
|
|
|
+ if (dataItem?.content?.attachmentList?.length && dataItem?.content?.attachmentList?.some(item => (item?.msgType === 'TASK_CONTENT_LINK' ? !groupMsgContent?.linkUrl : item?.msgType === 'TASK_STATUS_MINIPROGRAM' ? (!groupMsgContent?.miniprogramAppid || !groupMsgContent?.miniprogramPage) : false))) {
|
|
|
+ message.error('群发内容配置错误,请检查')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ })
|
|
|
+ })) {
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
+ // 客户继承
|
|
|
+ if (settings?.userInherit && Object.keys(settings?.userInherit).length) {
|
|
|
+ const userInData = getUserInDataData(settings?.userInherit?.schedulingStrategyDTO, settings?.userInherit?.taskName)
|
|
|
+ if (!settings?.corpUserGroups?.every((item, i) => {
|
|
|
+ return userInData.every((dataItem) => {
|
|
|
+ const externalUser = previewContent.externalUserTransferContent?.[i]?.[dataItem.strategyIndex - 1]?.[dataItem.inheritIndex - 1]
|
|
|
+ if (!externalUser || !externalUser?.corpUserName || !externalUser?.corpUserId) {
|
|
|
+ message.error('配置错误,' + JSON.stringify(dataItem) + ',' + JSON.stringify(item.externalUserTransferContent))
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ })
|
|
|
+ })) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ setSubVisible(true)
|
|
|
}
|
|
|
|
|
|
const onSubmit = (values: any) => {
|
|
|
- const { bizType, platform, templateProductId, corpUsers, welcomeMsgTemplateDTO, massSendingContent, massSendingStrategy, highMassSendingContent, highMassSendingStrategy, userInherit, friendsContent, friendsStrategy } = settings
|
|
|
+ const { bizType, platform, templateProductId, corpUserGroups, welcomeMsgTemplateDTO, massSendingContent, massSendingStrategy, highMassSendingContent, highMassSendingStrategy, userInherit, friendsContent, friendsStrategy } = settings
|
|
|
|
|
|
const params = {
|
|
|
...values,
|
|
|
bizType,
|
|
|
platform,
|
|
|
templateProductId,
|
|
|
- corpUsers: corpUsers?.map(item => {
|
|
|
+ corpUsers: corpUserGroups?.map((item, index) => {
|
|
|
const params: { [x: string]: any } = {
|
|
|
- corpId: item.corpId,
|
|
|
- corpUserId: item.corpUserId
|
|
|
+ corpId: item.corpUsers[0].corpId,
|
|
|
+ corpUserIds: item.corpUsers.map(item => item.corpUserId)
|
|
|
}
|
|
|
// 欢迎语
|
|
|
- if (item?.welcomeMsgContent) {
|
|
|
- params.welcomeMsgContent = item?.welcomeMsgContent
|
|
|
+ if (settings?.welcomeMsgTemplateDTO && Object.keys(settings?.welcomeMsgTemplateDTO).length) {
|
|
|
+ params.welcomeMsgContent = previewContent?.welcomeMsgContent[index]
|
|
|
}
|
|
|
+
|
|
|
// 群发
|
|
|
- if (item?.groupMsgContent) {
|
|
|
- params.groupMsgContent = item?.groupMsgContent
|
|
|
+ if (massSendingStrategy && Object.keys(massSendingStrategy).length) {
|
|
|
+ params.groupMsgContent = previewContent.groupMsgContent[index]
|
|
|
}
|
|
|
+
|
|
|
// 继承
|
|
|
- if (item?.externalUserTransferContent) {
|
|
|
- params.takeoverUserIds = item?.externalUserTransferContent
|
|
|
- }
|
|
|
- // 高级群发
|
|
|
- if (item?.highGroupMsgContent) {
|
|
|
- params.messageSendContent = item?.highGroupMsgContent
|
|
|
- // 外部成员
|
|
|
- if (item?.externalUserList) {
|
|
|
- params.corpList = item?.externalUserList.map(item => ({
|
|
|
- externalUserId: item.externalUserId,
|
|
|
- corpId: item.corpId
|
|
|
- }))
|
|
|
- }
|
|
|
- }
|
|
|
- if (item?.friendsMsgContent) {
|
|
|
- params.momentSendContent = item.friendsMsgContent
|
|
|
- }
|
|
|
- if (item?.friendsTagContent) {
|
|
|
- params.externalUserTagList = item.friendsTagContent.map(item => item.value)
|
|
|
+ if (settings?.userInherit && Object.keys(settings?.userInherit).length) {
|
|
|
+ params.takeoverUserIds = previewContent?.externalUserTransferContent[index]
|
|
|
}
|
|
|
+ // // 高级群发
|
|
|
+ // if (item?.highGroupMsgContent) {
|
|
|
+ // params.messageSendContent = item?.highGroupMsgContent
|
|
|
+ // // 外部成员
|
|
|
+ // if (item?.externalUserList) {
|
|
|
+ // params.corpList = item?.externalUserList.map(item => ({
|
|
|
+ // externalUserId: item.externalUserId,
|
|
|
+ // corpId: item.corpId
|
|
|
+ // }))
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if (item?.friendsMsgContent) {
|
|
|
+ // params.momentSendContent = item.friendsMsgContent
|
|
|
+ // }
|
|
|
+ // if (item?.friendsTagContent) {
|
|
|
+ // params.externalUserTagList = item.friendsTagContent.map(item => item.value)
|
|
|
+ // }
|
|
|
return params
|
|
|
})
|
|
|
}
|
|
@@ -445,10 +491,6 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
}
|
|
|
// 群发
|
|
|
if (massSendingStrategy && Object.keys(massSendingStrategy).length) {
|
|
|
- if (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?.corpUsers?.every(item => !item?.groupMsgContent?.length)) {
|
|
|
- message.error('需要配置小程序、链接,请上传配置好的群发Excel文件')
|
|
|
- return
|
|
|
- }
|
|
|
params.groupSendTaskAddDTO = {
|
|
|
groupSendName: massSendingStrategy.groupSendName,
|
|
|
strategyList: massSendingStrategy?.strategySettings?.map((settingsItem, settingsIndex) => {
|
|
@@ -574,32 +616,33 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
// })
|
|
|
// }
|
|
|
// }
|
|
|
- // if (userInherit && Object.keys(userInherit).length) {
|
|
|
- // params.externalUserTransferTasksDTO = {
|
|
|
- // taskName: userInherit.taskName,
|
|
|
- // schedulingStrategyDTO: userInherit.schedulingStrategyDTO.map(strategyItem => {
|
|
|
- // const {
|
|
|
- // inheritDto,
|
|
|
- // ...strategy
|
|
|
- // } = strategyItem
|
|
|
- // return {
|
|
|
- // ...strategy,
|
|
|
- // transferStrategyContentDTOS: inheritDto.map(inheritItem => {
|
|
|
- // const inherit: { [x: string]: any } = {
|
|
|
- // transferSuccessMsg: inheritItem.transferSuccessMsg
|
|
|
- // }
|
|
|
- // if (inheritItem.transferType === 'specify') {
|
|
|
- // inherit.externalUserFilter = {
|
|
|
- // configName: inheritItem.transferUserDto.configName,
|
|
|
- // ...inheritItem.transferUserDto.configContent
|
|
|
- // }
|
|
|
- // }
|
|
|
- // return inherit
|
|
|
- // })
|
|
|
- // }
|
|
|
- // })
|
|
|
- // }
|
|
|
- // }
|
|
|
+ // 客户继承
|
|
|
+ if (userInherit && Object.keys(userInherit).length) {
|
|
|
+ params.externalUserTransferTasksDTO = {
|
|
|
+ taskName: userInherit.taskName,
|
|
|
+ schedulingStrategyDTO: userInherit.schedulingStrategyDTO.map(strategyItem => {
|
|
|
+ const {
|
|
|
+ inheritDto,
|
|
|
+ ...strategy
|
|
|
+ } = strategyItem
|
|
|
+ return {
|
|
|
+ ...strategy,
|
|
|
+ transferStrategyContentDTOS: inheritDto.map(inheritItem => {
|
|
|
+ const inherit: { [x: string]: any } = {
|
|
|
+ transferSuccessMsg: inheritItem.transferSuccessMsg
|
|
|
+ }
|
|
|
+ if (inheritItem.transferType === 'specify') {
|
|
|
+ inherit.externalUserFilter = {
|
|
|
+ configName: inheritItem.transferUserDto.configName,
|
|
|
+ ...inheritItem.transferUserDto.configContent
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return inherit
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
// 朋友圈
|
|
|
// if (friendsStrategy && Object.keys(friendsStrategy).length) {
|
|
|
// params.momentCreateDTO = {
|
|
@@ -662,7 +705,6 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
// })
|
|
|
// }
|
|
|
// }
|
|
|
-
|
|
|
addTask.run(params).then(res => {
|
|
|
console.log(res)
|
|
|
if (res?.data) {
|
|
@@ -693,25 +735,34 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
message.success('存储成功')
|
|
|
}
|
|
|
|
|
|
- const setContent = (data: TASK_CREATE.SetContentProps) => {
|
|
|
+ const setContent = useCallback((data: TASK_CREATE.SetContentProps) => {
|
|
|
const { msg, index, type } = data
|
|
|
- const newPreviewContent = JSON.parse(JSON.stringify(previewContent))
|
|
|
-
|
|
|
-
|
|
|
+ const newPreviewContent: { groupMsgContent?: any[], welcomeMsgContent?: any[], externalUserTransferContent?: any[] } = JSON.parse(JSON.stringify(previewContent))
|
|
|
switch (type) {
|
|
|
case 'welcome':
|
|
|
+ newPreviewContent.welcomeMsgContent = newPreviewContent?.welcomeMsgContent || []
|
|
|
+ if (!newPreviewContent.welcomeMsgContent?.[index[0]]) newPreviewContent.welcomeMsgContent[index[0]] = [];
|
|
|
+ if (!newPreviewContent.welcomeMsgContent[index[0]][index[1]]) newPreviewContent.welcomeMsgContent[index[0]][index[1]] = {};
|
|
|
+ newPreviewContent.welcomeMsgContent[index[0]][index[1]] = { ...newPreviewContent.welcomeMsgContent[index[0]][index[1]], ...msg }
|
|
|
break
|
|
|
case 'massSending':
|
|
|
- newPreviewContent.groupMsgContent = newPreviewContent?.groupMsgContent || {}
|
|
|
+ newPreviewContent.groupMsgContent = newPreviewContent?.groupMsgContent || []
|
|
|
if (!newPreviewContent.groupMsgContent?.[index[0]]) newPreviewContent.groupMsgContent[index[0]] = [];
|
|
|
if (!newPreviewContent.groupMsgContent[index[0]][index[1]]) newPreviewContent.groupMsgContent[index[0]][index[1]] = [];
|
|
|
if (!newPreviewContent.groupMsgContent[index[0]][index[1]][index[2]]) newPreviewContent.groupMsgContent[index[0]][index[1]][index[2]] = [];
|
|
|
if (!newPreviewContent.groupMsgContent[index[0]][index[1]][index[2]][index[3]]) newPreviewContent.groupMsgContent[index[0]][index[1]][index[2]][index[3]] = {};
|
|
|
newPreviewContent.groupMsgContent[index[0]][index[1]][index[2]][index[3]] = { ...newPreviewContent.groupMsgContent[index[0]][index[1]][index[2]][index[3]], ...msg }
|
|
|
break
|
|
|
+ case 'userInherit':
|
|
|
+ newPreviewContent.externalUserTransferContent = newPreviewContent?.externalUserTransferContent || []
|
|
|
+ if (!newPreviewContent.externalUserTransferContent?.[index[0]]) newPreviewContent.externalUserTransferContent[index[0]] = [];
|
|
|
+ if (!newPreviewContent.externalUserTransferContent[index[0]][index[1]]) newPreviewContent.externalUserTransferContent[index[0]][index[1]] = [];
|
|
|
+ if (!newPreviewContent.externalUserTransferContent[index[0]][index[1]][index[2]]) newPreviewContent.externalUserTransferContent[index[0]][index[1]][index[2]] = {};
|
|
|
+ newPreviewContent.externalUserTransferContent[index[0]][index[1]][index[2]] = { ...newPreviewContent.externalUserTransferContent[index[0]][index[1]][index[2]], ...msg }
|
|
|
+ break
|
|
|
}
|
|
|
setPreviewContent(newPreviewContent)
|
|
|
- }
|
|
|
+ }, [previewContent])
|
|
|
|
|
|
return <div className={style.create}>
|
|
|
<Spin spinning={false}>
|
|
@@ -727,8 +778,8 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
...settings, corpUserGroups: corpUserGroups.map(item => {
|
|
|
return {
|
|
|
...item, corpUsers: item.corpUsers.map(item => {
|
|
|
- const { corpUserId, name, corpName, corpId } = item
|
|
|
- return { corpUserId, name, corpName, corpId }
|
|
|
+ const { corpUserId, name, corpName, corpId, mpAccountId } = item
|
|
|
+ return { corpUserId, name, corpName, corpId, mpAccountId }
|
|
|
})
|
|
|
}
|
|
|
})
|
|
@@ -851,7 +902,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
{/* 朋友圈 */}
|
|
|
{/* <Friends /> */}
|
|
|
{/* 客户继承 */}
|
|
|
- {/* <UserInherit /> */}
|
|
|
+ <UserInherit />
|
|
|
</div>
|
|
|
</DispatchTaskCreate.Provider>
|
|
|
</div>
|
|
@@ -884,7 +935,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
children: key === 'userInherit' ? <>
|
|
|
<Table
|
|
|
dataSource={previewData[key]}
|
|
|
- columns={userInheritColumns()}
|
|
|
+ columns={userInheritColumns(setContent)}
|
|
|
rowKey={'id'}
|
|
|
bordered={true}
|
|
|
scroll={{ y: 550 }}
|
|
@@ -893,7 +944,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
</> : key === 'massSending' ? <>
|
|
|
<Table
|
|
|
dataSource={previewData[key]}
|
|
|
- columns={massSendingColumns(setContent)}
|
|
|
+ columns={massSendingColumns(setContent, bookPlatForm)}
|
|
|
rowKey={'id'}
|
|
|
bordered={true}
|
|
|
scroll={{ y: 550 }}
|
|
@@ -902,7 +953,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
</> : key === 'welcome' ? <>
|
|
|
<Table
|
|
|
dataSource={previewData[key]}
|
|
|
- columns={welcomeColumns(bookPlatForm, bookList)}
|
|
|
+ columns={welcomeColumns(bookPlatForm, bookList, setContent)}
|
|
|
rowKey={'id'}
|
|
|
bordered={true}
|
|
|
scroll={{ y: 550 }}
|
|
@@ -931,7 +982,7 @@ const Create: React.FC<{ weComTaskStore: { data: { bookList: TASK_CREATE.BookLis
|
|
|
tabBarExtraContent={<Space size={10}>
|
|
|
{/* <Text strong>欢迎语:{previewData?.welcome?.length || 0},群发:{previewData?.massSending?.length || 0},客户继承:{previewData?.userInherit?.length || 0}</Text> */}
|
|
|
<Button type='primary' icon={<PlusOutlined />} onClick={() => {
|
|
|
- setSubVisible(true)
|
|
|
+ setTaskName()
|
|
|
}}>提交</Button>
|
|
|
</Space>}
|
|
|
/>
|