wjx 9 months ago
parent
commit
a53d16d1e8

+ 4 - 2
src/components/FileBoxAD/index.tsx

@@ -98,7 +98,8 @@ function FlieBox(props: Props) {
     const Menu = useCallback((props: { isItem?: boolean }) => {
         if (props.isItem && isAll) {
             return <ul style={{ top: xy?.y, left: xy?.x }} className={style.menu} >
-                {(isAll || num === 100) && <li onClick={allFile}>全选/反选</li>}
+                {(isAll || num === 100) && <li onClick={()=> allFile('xz')}>全选</li>}
+                {(isAll || num === 100) &&  listData?.records && listData?.records?.some((item: { id: number }) => selectFile?.includes(item.id)) && <li onClick={() => allFile('qx')} style={{ color: 'red' }}>取消选择</li>}
                 {mediaType === 'PAGE' && !rightClickPup.folder ? <>
                     {/* <li onClick={() => { setPage && setPage(1, rightClickPup.id) }}>查看</li> */}
                     <li onClick={() => { setPage && setPage(2, rightClickPup.id) }}>复制</li>
@@ -116,7 +117,8 @@ function FlieBox(props: Props) {
             </ul>
         }
         return <ul style={{ top: xy?.y, left: xy?.x }} className={style.menu}>
-            {(isAll || num === 100) && <li onClick={allFile}>全选/反选</li>}
+            {(isAll || num === 100) && <li onClick={()=> allFile('xz')}>全选</li>}
+            {(isAll || num === 100) &&  listData?.records && listData?.records?.some((item: { id: number }) => selectFile?.includes(item.id)) && <li onClick={() => allFile('qx')} style={{ color: 'red' }}>取消选择</li>}
             {//防止K图文无限嵌套创建判断
                 (isAll !== false) && <li onClick={() => { set({ fileVisible: true }) }}>新建文件夹</li> //: <li>此处无法新建操作</li>
             }

+ 9 - 2
src/models/useLaunchAdq/useBdMedia.ts

@@ -492,12 +492,19 @@ function useBdMediaPup() {
         set({ fileVisible: false, imgVisrible: false, imgsVisrible: false, sortVisible: false, actionItem: '', fileName: '', selectFile: selectFile?.filter(id => id !== actionItem?.id), sort: 0 })
     }, [selectFile, actionItem])
     /**全选反选文件*/
-    const allFile = useCallback(() => {
+    const allFile = useCallback((type: 'xz' | 'qx') => {
         let allArr: any[] = []
         list?.data?.records?.forEach((item: { id: any }) => {
             allArr.push(item.id)
         })
-        set({ selectFile: allArr.filter((i) => selectFile?.every(id => id !== i)) })
+        let newSelectFile = selectFile || []
+        if (type === 'xz') {
+            newSelectFile = newSelectFile.concat(allArr.filter((i) => selectFile?.every((id) => id !== i)))
+        } else {
+            newSelectFile = newSelectFile.filter(item => !allArr.includes(item))
+        }
+        
+        set({ selectFile: newSelectFile })
     }, [selectFile, list, mediaType])
     return {
         state,

+ 14 - 2
src/models/useLaunchAdq/useBdMediaPup.ts

@@ -653,13 +653,25 @@ function useBdMediaPup() {
     });
   }, [selectFile, actionItem]);
   /**全选反选文件*/
-  const allFile = useCallback(() => {
+  const allFile = useCallback((type: 'xz' | 'qx') => {
     let allArr: any[] = [], allFile: any[] = [];
     list?.data?.records?.forEach((item: { id: any }) => {
       allArr.push(item.id);
       allFile.push(item)
     });
-    set({ selectFile: allArr.filter((i) => selectFile?.every((id) => id !== i)), selectItem: allFile.filter((i) => selectItem?.every((item: any) => item.id !== i.id)) });
+    let newSelectFile = selectFile || []
+    let newSelectItem = selectItem || []
+    if (type === 'xz') {
+      newSelectFile = newSelectFile.concat(allArr.filter((i) => selectFile?.every((id) => id !== i)))
+      newSelectItem = newSelectItem.concat(allFile.filter((i) => selectItem?.every((item: any) => item.id !== i.id)))
+    } else {
+      newSelectFile = newSelectFile.filter(item => !allArr.includes(item))
+      newSelectItem = newSelectItem.filter(item => !allArr.includes(item.id))
+    }
+    set({
+      selectFile: newSelectFile,
+      selectItem: newSelectItem
+    });
   }, [selectFile, list, mediaType, selectItem]);
   return {
     state,