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