From 621a3268a8c2cebf899e3ba824c49a1513cb619b Mon Sep 17 00:00:00 2001
From: zhangyongtian <1181606322@qq.com>
Date: Fri, 13 Sep 2024 18:32:35 +0800
Subject: [PATCH] feat: 图片

---
 gz-customerSystem/src/views/register/matterDetail/FileTable.jsx |   82 ++++++++++++++++++++++++----------------
 1 files changed, 49 insertions(+), 33 deletions(-)

diff --git a/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx b/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
index f309b7e..0ee77a7 100644
--- a/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
@@ -18,15 +18,11 @@
 const appUrl = $$.appUrl;
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
-}
-
-function listIdTypeInfoApi(data) {
-  return $$.ax.request({ url: `fileInfo/listIdTypeInfo`, type: 'post', service: 'sys', data });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
 }
 
 function deleteFileByIdApi(data) {
-  return $$.ax.request({ url: `fileInfo/deleteFileByIds`, type: 'delete', service: 'sys', data });
+  return $$.ax.request({ url: `fileInfo/deleteFileByIds`, type: 'get', service: 'sys', data });
 }
 
 //表格数据
@@ -48,6 +44,12 @@
     id: 2,
   },
 ]
+
+/**
+ * mainId*,//就是caseId,事件id
+ * fileInfoList*, //文件列表
+ * isReview,//是否查看,查看的话就不能删除上传,只能查看下载
+ */
 
 export default function FileTable(props) {
   const formRef = useRef();
@@ -98,9 +100,9 @@
       title: '操作',
       dataIndex: 'perClassName',
       key: 'perClassName',
-      width: 125,
+      width: props.isReview ? 80 : 140,
       fixed: 'right',
-      render: (text, record) => (
+      render: (text, record, index) => (
         <Space size="middle">
           <Link onClick={() => {
             setSourceType(record.ownerType)
@@ -108,19 +110,19 @@
           }}>
             查看
           </Link>
-          <Link onClick={() => {
+          {!props.isReview && <Link onClick={() => {
             if (record.fileInfoList && record.fileInfoList.length != 0) {
               let ids = record.fileInfoList?.map(item => item.id).join(',')
-              handleDelete(ids)
+              handleDelete(ids, record, index)
             } else {
               $$.info({ type: 'warning', content: '还没上传关于该材料的文件!' });
             }
           }}>
             删除
-          </Link>
+          </Link>}
           <Link onClick={() => {
-            if (record.fileInfoList && record.fileInfoList.length != 0) {
-              let ids = record.fileInfoList?.map(item => item.id).join(',')
+            if (record.fileList && record.fileList.length != 0) {
+              let ids = record.fileList?.map(item => item.id).join(',')
               handleDownlod(ids)
             } else {
               $$.info({ type: 'warning', content: '还没上传关于该材料的文件!' });
@@ -128,16 +130,17 @@
           }}>
             下载
           </Link>
-          <Link onClick={() => {
+          {!props.isReview && <Link onClick={() => {
+            console.log(record);
             setSourceType(record.ownerType)
             setUpLoadVisible(true)
-            setFileInfoList(record.fileInfoList)
+            setFileInfoList(record.fileList)
             setTimeout(() => {
-              formRef.current.setFieldValue('file', record.fileInfoList)
+              formRef.current.setFieldValue('file', record.fileList)
             }, 0)
           }}>
             上传
-          </Link>
+          </Link>}
         </Space>
       )
     },
@@ -149,6 +152,7 @@
   ]
 
   useEffect(() => {
+    console.log(props.fileInfoList);
     if (props.fileInfoList && props.fileInfoList.length != 0) {
       //证明材料
       const applyFile = props.fileInfoList.find(item => item.ownerType == "22_00018-101")
@@ -163,13 +167,13 @@
           return {
             ...item,
             size: applyFile.fileList.length,
-            fileNames: applyFile.fileList?.map(item => item.trueName).join(','),
+            fileNames: applyFile.fileList?.map(item => item.name).join(','),
             updateTime: $$.timeFormat(applyFile.fileList[applyFile.fileList.length - 1].updateTime),
-            fileInfoList: applyFile.fileList.map(item => {
+            fileList: applyFile.fileList.map(item => {
               return {
                 ...item,
                 uid: item.id,
-                name: item.trueName
+                // name: item.trueName
               }
             })
           }
@@ -178,13 +182,13 @@
           return {
             ...item,
             size: evidenceFile.fileList.length,
-            fileNames: evidenceFile.fileList?.map(item => item.trueName).join(','),
+            fileNames: evidenceFile.fileList?.map(item => item.name).join(','),
             updateTime: $$.timeFormat(evidenceFile.fileList[evidenceFile.fileList.length - 1].updateTime),
-            fileInfoList: evidenceFile.fileList.map(item => {
+            fileList: evidenceFile.fileList.map(item => {
               return {
                 ...item,
                 uid: item.id,
-                name: item.trueName
+                // name: item.trueName
               }
             })
           }
@@ -219,16 +223,15 @@
     const newList = tableData.map(item => {
       if (item.ownerType == sourceType) {
         const data = fileMap[sourceType]
-        console.log(data);
         return {
           ...item,
           size: data.length,
-          fileNames: data.map(item => item.trueName).join(','),
+          fileNames: data.map(item => item.name).join(','),
           updateTime: $$.timeFormat(data[data.length - 1].updateTime),
-          fileInfoList: data.map(item => {
+          fileList: data.map(item => {
             return {
               ...item,
-              name: item.trueName,
+              // name: item.trueName,
               uid: item.id,
             }
           }),
@@ -237,12 +240,17 @@
         return item
       }
     })
+    //回传文件数据的时候使用
+    if(props.handleSaveList) {
+      props.handleSaveList(newList)
+    }
     setTableData(newList)
     setUpLoadVisible(false);
   };
 
   //根据sourceType生成组件
   const formType = (type) => {
+
     if (type === '22_00018-101') {
       //申请材料
       return (
@@ -266,9 +274,10 @@
                     return item
                   }
                 })
+
                 setFileMap({
                   ...fileMap,
-                  '22_00018-101': newList
+                  '22_00018-101': newList.filter(i => i.ownerType === '22_00018-101')
                 })
               }}
             />
@@ -302,7 +311,7 @@
                 })
                 setFileMap({
                   ...fileMap,
-                  '22_00018-102': newList
+                  '22_00018-102': newList.filter(i => i.ownerType === '22_00018-102')
                 })
               }}
             />
@@ -314,14 +323,20 @@
   }
 
   //删除
-  const handleDelete = (ids) => {
+  const handleDelete = (ids, record, index) => {
     Modal.confirm({
       title: '删除确认',
       content: '确认全部删除该材料?',
       onOk: async () => {
+        let newData = tableData;
+        newData[index] = { ...record, fileInfoList: record.fileInfoList.filter(i => (i.id !== ids)) }
+        console.log('newData', newData);
+
+        // setTableData(newData)
         const res = await deleteFileByIdApi({ ids })
         if (res.type) {
           $$.infoSuccess({ content: '删除成功!' });
+          setTableData(tableData.filter(item => !ids.includes(item.ownerType)))
         }
       },
     });
@@ -340,8 +355,8 @@
         size="small"
         rowKey="ownerType"
         bordered={true}
-        style={{ marginBottom: '65px' }}
         scroll={{ x: 1300 }}
+        tableHeight={137}
       />
       <Modal
         style={{ width: '512px' }}
@@ -361,6 +376,7 @@
               return (
                 <Col span={12} key={t}>
                   <div
+                    onClick={() => { x.value !== sourceType && setSourceType(x.value) }}
                     className={`casePerfection-cardTab-tab ${x.value === sourceType && 'casePerfection-cardTab-tabActive'}`}
                   >
                     <img src={x.value === sourceType ? personIconType(x.value)?.[1] : personIconType(x.value)?.[0]} alt="" style={{ width: '40px', height: '40px' }} />
@@ -403,9 +419,9 @@
         maskClosable={false}
       >
         <div style={{ marginTop: '-16px' }}>
-          <NewFileCheck menuList={tableData} sourceType={sourceType}/>
+          <NewFileCheck menuList={tableData} sourceType={sourceType} />
         </div>
       </Modal>
-    </Fragment>
+    </Fragment >
   )
 }

--
Gitblit v1.8.0