|  | @@ -6,7 +6,7 @@ import style from './index.less'
 | 
	
		
			
				|  |  |  import SelectSearch from "./selectSearch"
 | 
	
		
			
				|  |  |  import './global.less'
 | 
	
		
			
				|  |  |  import '../../tencentAdPutIn/index.less'
 | 
	
		
			
				|  |  | -import { useLocalStorageState, useSize } from "ahooks"
 | 
	
		
			
				|  |  | +import { useSize } from "ahooks"
 | 
	
		
			
				|  |  |  import useFileDrop from "@/Hook/useFileDrop"
 | 
	
		
			
				|  |  |  import { formatBytes, formatSecondsToTime, getVideoImgUrl } from "@/utils/utils"
 | 
	
		
			
				|  |  |  import UploadFile from "./uploadFile"
 | 
	
	
		
			
				|  | @@ -18,6 +18,7 @@ import { showFieldList } from "./const"
 | 
	
		
			
				|  |  |  import SelectFolder from "./selectFolder"
 | 
	
		
			
				|  |  |  import SelectGroupCloudNew from "./selectGroupCloudNew"
 | 
	
		
			
				|  |  |  import SelectGroupUnitNew from "./selectGroupUnitNew"
 | 
	
		
			
				|  |  | +import { addOnlyDataApi, getOnlyDataApi } from "@/services/adqV3"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const { Text, Paragraph } = Typography;
 | 
	
	
		
			
				|  | @@ -42,14 +43,30 @@ const SelectCloudNew: React.FC<CLOUDNEW.SelectCloudNewProps> = ({ visible, defau
 | 
	
		
			
				|  |  |      const [queryParams, setQueryParams] = useState<CLOUDNEW.GetMaterialDataListProps>({ pageNum: 1, pageSize: 20 })
 | 
	
		
			
				|  |  |      const [searchParams, setSearchParams] = useState<Partial<CLOUDNEW.GetMaterialDataListProps>>({})
 | 
	
		
			
				|  |  |      const [uploadVisible, setUploadVisible] = useState<boolean>(false)
 | 
	
		
			
				|  |  | -    const [showField, setShowField] = useLocalStorageState<string[]>('show-field', ['material.create_time', 'material_data_day.cost', 'material_data_day.ctr', 'material_data_day.conversions_rate', 'material_data_day.dynamic_creative_count']);
 | 
	
		
			
				|  |  | -    const [sortData, setSortData] = useLocalStorageState<{ sortField: string | undefined, sortType: boolean }>('sort-data', { sortField: undefined, sortType: false });
 | 
	
		
			
				|  |  | +    const [isGetField, setIsGetField] = useState<boolean>(false)
 | 
	
		
			
				|  |  | +    const [showField, setShowField] = useState<string[]>(['material.create_time', 'material_data_day.cost', 'material_data_day.ctr', 'material_data_day.conversions_rate', 'material_data_day.dynamic_creative_count'])
 | 
	
		
			
				|  |  | +    const [sortData, setSortData] = useState<{ sortField: string | undefined, sortType: boolean }>({ sortField: undefined, sortType: false })
 | 
	
		
			
				|  |  |      const [active, setActive] = useState<number>()
 | 
	
		
			
				|  |  |      const [isShowAll, setIsShowAll] = useState<boolean>(false)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      const getMaterialDataList = useAjax((params) => getMaterialDataListApi(params))
 | 
	
		
			
				|  |  | +    const getOnlyData = useAjax((params) => getOnlyDataApi(params))
 | 
	
		
			
				|  |  | +    const addOnlyData = useAjax((params) => addOnlyDataApi(params))
 | 
	
		
			
				|  |  |      /************************************/
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    useEffect(() => {
 | 
	
		
			
				|  |  | +        getOnlyData.run({ type: 'MODE_FIELD_ENT' }).then(res => {
 | 
	
		
			
				|  |  | +            if (res?.data) {
 | 
	
		
			
				|  |  | +                const { showField, sortData } = JSON.parse(res.data)
 | 
	
		
			
				|  |  | +                setShowField(showField)
 | 
	
		
			
				|  |  | +                setSortData(sortData)
 | 
	
		
			
				|  |  | +                setTimeout(() => setIsGetField(true), 0)
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                setIsGetField(true)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }).catch(() => setIsGetField(true))
 | 
	
		
			
				|  |  | +    }, [])
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      useEffect(() => {
 | 
	
		
			
				|  |  |          if (sliderImgContent && sliderImgContent?.length > 0) {
 | 
	
		
			
				|  |  |              setCheckedFolderList(sliderImgContent as any || [])
 | 
	
	
		
			
				|  | @@ -57,22 +74,24 @@ const SelectCloudNew: React.FC<CLOUDNEW.SelectCloudNewProps> = ({ visible, defau
 | 
	
		
			
				|  |  |      }, [])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      useEffect(() => {
 | 
	
		
			
				|  |  | -        let params = { ...searchParams, ...defaultParams, ...queryParams }
 | 
	
		
			
				|  |  | -        if (sortData?.sortField) {
 | 
	
		
			
				|  |  | -            params = { ...params, ...sortData }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (params?.sizeList?.length) {
 | 
	
		
			
				|  |  | -            params.sizeQueries = params.sizeList.map(item => {
 | 
	
		
			
				|  |  | -                const [width, height, relation] = item.split('*')
 | 
	
		
			
				|  |  | -                return { width: Number(width), height: Number(height), relation: relation || '=' }
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        delete params?.sizeList
 | 
	
		
			
				|  |  | -        if (isShowAll) {
 | 
	
		
			
				|  |  | -            delete params?.sizeQueries
 | 
	
		
			
				|  |  | +        if (isGetField) {
 | 
	
		
			
				|  |  | +            let params = { ...searchParams, ...defaultParams, ...queryParams }
 | 
	
		
			
				|  |  | +            if (sortData?.sortField) {
 | 
	
		
			
				|  |  | +                params = { ...params, ...sortData }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (params?.sizeList?.length) {
 | 
	
		
			
				|  |  | +                params.sizeQueries = params.sizeList.map(item => {
 | 
	
		
			
				|  |  | +                    const [width, height, relation] = item.split('*')
 | 
	
		
			
				|  |  | +                    return { width: Number(width), height: Number(height), relation: relation || '=' }
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            delete params?.sizeList
 | 
	
		
			
				|  |  | +            if (isShowAll) {
 | 
	
		
			
				|  |  | +                delete params?.sizeQueries
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            getMaterialDataList.run(params)
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        getMaterialDataList.run(params)
 | 
	
		
			
				|  |  | -    }, [queryParams, defaultParams, searchParams, sortData, showField, isShowAll])
 | 
	
		
			
				|  |  | +    }, [queryParams, defaultParams, searchParams, sortData, showField, isShowAll, isGetField])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // 根据内容宽度计算列数
 | 
	
		
			
				|  |  |      useEffect(() => {
 | 
	
	
		
			
				|  | @@ -264,7 +283,8 @@ const SelectCloudNew: React.FC<CLOUDNEW.SelectCloudNewProps> = ({ visible, defau
 | 
	
		
			
				|  |  |                                                              return
 | 
	
		
			
				|  |  |                                                          }
 | 
	
		
			
				|  |  |                                                          setSortData({ ...sortData, sortField: undefined })
 | 
	
		
			
				|  |  | -                                                        setShowField(value as any)
 | 
	
		
			
				|  |  | +                                                        setShowField(() => value as any)
 | 
	
		
			
				|  |  | +                                                        addOnlyData.run({ data: JSON.stringify({ showField: value, sortData: { ...sortData, sortField: undefined } }), type: 'MODE_FIELD_ENT' })
 | 
	
		
			
				|  |  |                                                      }}
 | 
	
		
			
				|  |  |                                                  />
 | 
	
		
			
				|  |  |                                              </Form.Item>
 | 
	
	
		
			
				|  | @@ -282,9 +302,17 @@ const SelectCloudNew: React.FC<CLOUDNEW.SelectCloudNewProps> = ({ visible, defau
 | 
	
		
			
				|  |  |                                                          allowClear
 | 
	
		
			
				|  |  |                                                          onChange={(value) => {
 | 
	
		
			
				|  |  |                                                              setSortData({ ...sortData, sortField: value as any })
 | 
	
		
			
				|  |  | +                                                            addOnlyData.run({ data: JSON.stringify({ showField, sortData: { ...sortData, sortField: value as any }}), type: 'MODE_FIELD_ENT' })
 | 
	
		
			
				|  |  |                                                          }}
 | 
	
		
			
				|  |  |                                                      />
 | 
	
		
			
				|  |  | -                                                    <Radio.Group value={sortData.sortType} onChange={(e) => setSortData({ ...sortData, sortType: e.target.value })} buttonStyle="solid">
 | 
	
		
			
				|  |  | +                                                    <Radio.Group
 | 
	
		
			
				|  |  | +                                                        value={sortData.sortType}
 | 
	
		
			
				|  |  | +                                                        onChange={(e) => {
 | 
	
		
			
				|  |  | +                                                            setSortData({ ...sortData, sortType: e.target.value })
 | 
	
		
			
				|  |  | +                                                            addOnlyData.run({ data: JSON.stringify({ showField, sortData: { ...sortData, sortType: e.target.value }}), type: 'MODE_FIELD_ENT' })
 | 
	
		
			
				|  |  | +                                                        }}
 | 
	
		
			
				|  |  | +                                                        buttonStyle="solid"
 | 
	
		
			
				|  |  | +                                                    >
 | 
	
		
			
				|  |  |                                                          <Radio.Button value={true}>正序</Radio.Button>
 | 
	
		
			
				|  |  |                                                          <Radio.Button value={false}>倒序</Radio.Button>
 | 
	
		
			
				|  |  |                                                      </Radio.Group>
 | 
	
	
		
			
				|  | @@ -301,7 +329,7 @@ const SelectCloudNew: React.FC<CLOUDNEW.SelectCloudNewProps> = ({ visible, defau
 | 
	
		
			
				|  |  |                              </div>
 | 
	
		
			
				|  |  |                          </div>
 | 
	
		
			
				|  |  |                          <div className={`${style.content} content_global`}>
 | 
	
		
			
				|  |  | -                            <Spin spinning={getMaterialDataList.loading}>
 | 
	
		
			
				|  |  | +                            <Spin spinning={getMaterialDataList.loading || getOnlyData.loading}>
 | 
	
		
			
				|  |  |                                  <div className={style.content_scroll} ref={ref} {...dropAreaProps}>
 | 
	
		
			
				|  |  |                                      {isDragOver && <div className={`${style.placeholder} ${isDragOver ? style.dragOver : ''}`}><span>拖动文件到这里</span></div>}
 | 
	
		
			
				|  |  |                                      {getMaterialDataList?.data?.records?.length > 0 ? <Checkbox.Group value={checkedFolderList?.filter((_, index) => (active || active === 0) ? index === active : true)?.map(item => item.id)} style={{ width: '100%' }}>
 |