|  | @@ -8,6 +8,7 @@ import AddTextS from "./addTextS"
 | 
	
		
			
				|  |  |  import style from '../index.less'
 | 
	
		
			
				|  |  |  import styles from '../Material/index.less'
 | 
	
		
			
				|  |  |  import VideoNews from "@/pages/launchSystemNew/components/newsModal/videoNews"
 | 
	
		
			
				|  |  | +import SelectCopyWriting from "@/pages/launchSystemV3/tencenTasset/copyWriting/selectCopyWriting"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  interface Props {
 | 
	
		
			
				|  |  |      textData: any,
 | 
	
	
		
			
				|  | @@ -126,6 +127,98 @@ const NewText: React.FC<Props> = ({ visible, onClose, onChange, value, textData,
 | 
	
		
			
				|  |  |          return null
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    const setText = (valList: string[]) => {
 | 
	
		
			
				|  |  | +        let fieldData = textList.find(item => item.label === addSTitle)
 | 
	
		
			
				|  |  | +        let count = dynamicMaterialDTos.dynamicGroup.length
 | 
	
		
			
				|  |  | +        if (type === 1 || type === 0) {
 | 
	
		
			
				|  |  | +            let len = 0
 | 
	
		
			
				|  |  | +            const newTextDto = textDto.map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | +                if (fieldData?.value && (item?.[fieldData?.value]?.length === 0 || !item?.[fieldData?.value]?.every((t: string) => t)) && valList.length >= len + 1) {
 | 
	
		
			
				|  |  | +                    return {
 | 
	
		
			
				|  |  | +                        ...item,
 | 
	
		
			
				|  |  | +                        [fieldData.value]: (item?.[fieldData?.value]?.length === 0 ? [''] : item?.[fieldData?.value]).map((t: string) => {
 | 
	
		
			
				|  |  | +                            if (t) {
 | 
	
		
			
				|  |  | +                                return t
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +                                return valList[len++]
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                return item
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            form.setFieldsValue({
 | 
	
		
			
				|  |  | +                textDto: newTextDto
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        } else if (type === 2) {
 | 
	
		
			
				|  |  | +            let len = 0
 | 
	
		
			
				|  |  | +            const newTextDto = textDto.map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | +                if (fieldData?.value && (item?.[fieldData?.value]?.length === 0 || !item?.[fieldData?.value]?.every((t: string) => t)) && valList.length >= len + 1) {
 | 
	
		
			
				|  |  | +                    return {
 | 
	
		
			
				|  |  | +                        ...item,
 | 
	
		
			
				|  |  | +                        [fieldData.value]: (item?.[fieldData?.value]?.length === 0 ? [''] : item?.[fieldData?.value]).map((t: string) => {
 | 
	
		
			
				|  |  | +                            if (t) {
 | 
	
		
			
				|  |  | +                                return t
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +                                return valList[len++]
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                return item
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            let diffTextDto: any[] = []
 | 
	
		
			
				|  |  | +            if (newTextDto.length < count && len < valList.length) {
 | 
	
		
			
				|  |  | +                let diffCount = count - newTextDto.length
 | 
	
		
			
				|  |  | +                let diffTextCount = valList.length - len
 | 
	
		
			
				|  |  | +                let diff = 0
 | 
	
		
			
				|  |  | +                if (diffCount >= diffTextCount) {
 | 
	
		
			
				|  |  | +                    diff = diffTextCount
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    diff = diffCount
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                diffTextDto = Array(diff).fill('').map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | +                    if (fieldData?.value) {
 | 
	
		
			
				|  |  | +                        return { ...item, [fieldData.value]: [valList[len++]] }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    return item
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            form.setFieldsValue({
 | 
	
		
			
				|  |  | +                textDto: [...newTextDto, ...diffTextDto]
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        } else if ([3, 4].includes(type)) {
 | 
	
		
			
				|  |  | +            let len = 0
 | 
	
		
			
				|  |  | +            const newTextDto = textDto.map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | +                if (fieldData?.value && (item?.[fieldData?.value]?.length === 0 || !item?.[fieldData?.value]?.every((t: string) => t)) && valList.length >= len + 1) {
 | 
	
		
			
				|  |  | +                    return {
 | 
	
		
			
				|  |  | +                        ...item, [fieldData.value]: (item?.[fieldData?.value]?.length === 0 ? [''] : item?.[fieldData?.value]).map((t: string) => {
 | 
	
		
			
				|  |  | +                            if (t) {
 | 
	
		
			
				|  |  | +                                return t
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +                                return valList[len++]
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                return item
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            let diffTextDto: any[] = []
 | 
	
		
			
				|  |  | +            if (len < valList.length) {
 | 
	
		
			
				|  |  | +                let diff = valList.length - len
 | 
	
		
			
				|  |  | +                diffTextDto = Array(diff).fill('').map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | +                    if (fieldData?.value) {
 | 
	
		
			
				|  |  | +                        return { ...item, [fieldData.value]: [valList[len++]] }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    return item
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            form.setFieldsValue({
 | 
	
		
			
				|  |  | +                textDto: [...newTextDto, ...diffTextDto]
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      return <Modal
 | 
	
		
			
				|  |  |          title={<Space>
 | 
	
		
			
				|  |  |              <strong style={{ fontSize: 20 }}>创意文案</strong>
 | 
	
	
		
			
				|  | @@ -133,6 +226,14 @@ const NewText: React.FC<Props> = ({ visible, onClose, onChange, value, textData,
 | 
	
		
			
				|  |  |                  {textList.some(item => item.value === "description") && <a style={{ fontSize: 12 }} onClick={() => { setDesVisible(true); setAddStitle(textList.find(item => item.value === "description")?.label) }}>批量添加{textList.find(item => item.value === "description")?.label}</a>}
 | 
	
		
			
				|  |  |                  {textList.some(item => item.value === "title") && <a style={{ fontSize: 12 }} onClick={() => { setDesVisible(true); setAddStitle(textList.find(item => item.value === "description")?.label) }}>批量添加{textList.find(item => item.value === "description")?.label}</a>}
 | 
	
		
			
				|  |  |              </>}
 | 
	
		
			
				|  |  | +            {textList.some(item => item.value === "description") && <SelectCopyWriting
 | 
	
		
			
				|  |  | +                onClick={() => {
 | 
	
		
			
				|  |  | +                    setAddStitle(textList.find(item => item.value === "description")?.label)
 | 
	
		
			
				|  |  | +                }}
 | 
	
		
			
				|  |  | +                onChange={(valList) => {
 | 
	
		
			
				|  |  | +                    setText(valList)
 | 
	
		
			
				|  |  | +                }}
 | 
	
		
			
				|  |  | +            />}
 | 
	
		
			
				|  |  |          </Space>}
 | 
	
		
			
				|  |  |          open={visible}
 | 
	
		
			
				|  |  |          onCancel={onClose}
 | 
	
	
		
			
				|  | @@ -285,95 +386,7 @@ const NewText: React.FC<Props> = ({ visible, onClose, onChange, value, textData,
 | 
	
		
			
				|  |  |                          .split(/\r?\n/)        // 按换行符分割字符串
 | 
	
		
			
				|  |  |                          .map(line => line.trim()) // 去除每行的首尾空白
 | 
	
		
			
				|  |  |                          .filter(line => line !== ''); // 过滤掉空行
 | 
	
		
			
				|  |  | -                    let fieldData = textList.find(item => item.label === addSTitle)
 | 
	
		
			
				|  |  | -                    let count = dynamicMaterialDTos.dynamicGroup.length
 | 
	
		
			
				|  |  | -                    if (type === 1) {
 | 
	
		
			
				|  |  | -                        let len = 0
 | 
	
		
			
				|  |  | -                        const newTextDto = textDto.map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | -                            if (fieldData?.value && (item?.[fieldData?.value]?.length === 0 || !item?.[fieldData?.value]?.every((t: string) => t)) && valList.length >= len + 1) {
 | 
	
		
			
				|  |  | -                                return {
 | 
	
		
			
				|  |  | -                                    ...item,
 | 
	
		
			
				|  |  | -                                    [fieldData.value]: (item?.[fieldData?.value]?.length === 0 ? [''] : item?.[fieldData?.value]).map((t: string) => {
 | 
	
		
			
				|  |  | -                                        if (t) {
 | 
	
		
			
				|  |  | -                                            return t
 | 
	
		
			
				|  |  | -                                        } else {
 | 
	
		
			
				|  |  | -                                            return valList[len++]
 | 
	
		
			
				|  |  | -                                        }
 | 
	
		
			
				|  |  | -                                    })
 | 
	
		
			
				|  |  | -                                }
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                            return item
 | 
	
		
			
				|  |  | -                        })
 | 
	
		
			
				|  |  | -                        form.setFieldsValue({
 | 
	
		
			
				|  |  | -                            textDto: newTextDto
 | 
	
		
			
				|  |  | -                        })
 | 
	
		
			
				|  |  | -                    } else if (type === 2) {
 | 
	
		
			
				|  |  | -                        let len = 0
 | 
	
		
			
				|  |  | -                        const newTextDto = textDto.map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | -                            if (fieldData?.value && (item?.[fieldData?.value]?.length === 0 || !item?.[fieldData?.value]?.every((t: string) => t)) && valList.length >= len + 1) {
 | 
	
		
			
				|  |  | -                                return {
 | 
	
		
			
				|  |  | -                                    ...item,
 | 
	
		
			
				|  |  | -                                    [fieldData.value]: (item?.[fieldData?.value]?.length === 0 ? [''] : item?.[fieldData?.value]).map((t: string) => {
 | 
	
		
			
				|  |  | -                                        if (t) {
 | 
	
		
			
				|  |  | -                                            return t
 | 
	
		
			
				|  |  | -                                        } else {
 | 
	
		
			
				|  |  | -                                            return valList[len++]
 | 
	
		
			
				|  |  | -                                        }
 | 
	
		
			
				|  |  | -                                    })
 | 
	
		
			
				|  |  | -                                }
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                            return item
 | 
	
		
			
				|  |  | -                        })
 | 
	
		
			
				|  |  | -                        let diffTextDto: any[] = []
 | 
	
		
			
				|  |  | -                        if (newTextDto.length < count && len < valList.length) {
 | 
	
		
			
				|  |  | -                            let diffCount = count - newTextDto.length
 | 
	
		
			
				|  |  | -                            let diffTextCount = valList.length - len
 | 
	
		
			
				|  |  | -                            let diff = 0
 | 
	
		
			
				|  |  | -                            if (diffCount >= diffTextCount) {
 | 
	
		
			
				|  |  | -                                diff = diffTextCount
 | 
	
		
			
				|  |  | -                            } else {
 | 
	
		
			
				|  |  | -                                diff = diffCount
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                            diffTextDto = Array(diff).fill('').map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | -                                if (fieldData?.value) {
 | 
	
		
			
				|  |  | -                                    return { ...item, [fieldData.value]: [valList[len++]] }
 | 
	
		
			
				|  |  | -                                }
 | 
	
		
			
				|  |  | -                                return item
 | 
	
		
			
				|  |  | -                            })
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                        form.setFieldsValue({
 | 
	
		
			
				|  |  | -                            textDto: [...newTextDto, ...diffTextDto]
 | 
	
		
			
				|  |  | -                        })
 | 
	
		
			
				|  |  | -                    } else if ([3, 4].includes(type)) {
 | 
	
		
			
				|  |  | -                        let len = 0
 | 
	
		
			
				|  |  | -                        const newTextDto = textDto.map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | -                            if (fieldData?.value && (item?.[fieldData?.value]?.length === 0 || !item?.[fieldData?.value]?.every((t: string) => t)) && valList.length >= len + 1) {
 | 
	
		
			
				|  |  | -                                return {
 | 
	
		
			
				|  |  | -                                    ...item, [fieldData.value]: (item?.[fieldData?.value]?.length === 0 ? [''] : item?.[fieldData?.value]).map((t: string) => {
 | 
	
		
			
				|  |  | -                                        if (t) {
 | 
	
		
			
				|  |  | -                                            return t
 | 
	
		
			
				|  |  | -                                        } else {
 | 
	
		
			
				|  |  | -                                            return valList[len++]
 | 
	
		
			
				|  |  | -                                        }
 | 
	
		
			
				|  |  | -                                    })
 | 
	
		
			
				|  |  | -                                }
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                            return item
 | 
	
		
			
				|  |  | -                        })
 | 
	
		
			
				|  |  | -                        let diffTextDto: any[] = []
 | 
	
		
			
				|  |  | -                        if (len < valList.length) {
 | 
	
		
			
				|  |  | -                            let diff = valList.length - len
 | 
	
		
			
				|  |  | -                            diffTextDto = Array(diff).fill('').map((item: { [x: string]: any }) => {
 | 
	
		
			
				|  |  | -                                if (fieldData?.value) {
 | 
	
		
			
				|  |  | -                                    return { ...item, [fieldData.value]: [valList[len++]] }
 | 
	
		
			
				|  |  | -                                }
 | 
	
		
			
				|  |  | -                                return item
 | 
	
		
			
				|  |  | -                            })
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                        form.setFieldsValue({
 | 
	
		
			
				|  |  | -                            textDto: [...newTextDto, ...diffTextDto]
 | 
	
		
			
				|  |  | -                        })
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | +                    setText(valList)
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  setDesVisible(false)
 | 
	
		
			
				|  |  |                  setAddStitle(undefined)
 |