From ceb8b41c37e6a21ed7a01770fd77259d7c28a0a1 Mon Sep 17 00:00:00 2001
From: zhangyongtian <1181606322@qq.com>
Date: Sat, 07 Sep 2024 19:38:49 +0800
Subject: [PATCH] feat: 事件材料
---
gz-customerSystem/src/views/register/matterDetail/index.jsx | 24 --
gz-customerSystem/src/components/ArcoUpload/index.jsx | 4
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx | 300 ---------------------------
gz-customerSystem/src/views/register/matterDetail/FileTable.jsx | 267 ++++++++++++++++++++++++
gz-customerSystem/src/views/filesCheck/newFileCheck.jsx | 11
5 files changed, 279 insertions(+), 327 deletions(-)
diff --git a/gz-customerSystem/src/components/ArcoUpload/index.jsx b/gz-customerSystem/src/components/ArcoUpload/index.jsx
index 58c5ac1..b440f36 100644
--- a/gz-customerSystem/src/components/ArcoUpload/index.jsx
+++ b/gz-customerSystem/src/components/ArcoUpload/index.jsx
@@ -29,7 +29,6 @@
const [myFileList, setMyFileList] = useState([])
const handleFileListChange = (fileList) => {
- setMyFileList(fileList);
if (props.onFileListChange) {
props.onFileListChange(fileList);
}
@@ -82,8 +81,9 @@
if (isDel && props.handleDelFile) {
props.handleDelFile(response.data[0].id)
}
- // setMyFileList(fileList)
handleFileListChange(fileList);
+ setMyFileList(fileList)
+
}}
{...props.params}//自定义
/>
diff --git a/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx b/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
index 8636736..57454a7 100644
--- a/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
+++ b/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
@@ -45,8 +45,8 @@
const Option = Select.Option;
// 获取附件
-function getFileListDataApi() {
- return $$.ax.request({ url: `fileInfo/listFileByCat?mainId=${'10001'}&ownerCat=&createStart=&createEnd=&uploaderType=`, type: 'get', service: 'sys', });
+function getFileListDataApi(data) {
+ return $$.ax.request({ url: `fileInfo/listFileByCat`, type: 'get', service: 'sys', data });
}
const NewFileCheck = ({ caseId }) => {
@@ -71,6 +71,9 @@
const imgRef = useRef();
const formRef = useRef();
+ useEffect(() => {
+ getFileListData();
+ }, []);
// 图片旋转
function handleRotateImg(type) {
@@ -187,9 +190,7 @@
}
console.log(files,'filesfiles')
- useEffect(() => {
- getFileListData();
- }, []);
+
// 监听鼠标滚动事件
useEffect(() => {
diff --git a/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx b/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
new file mode 100644
index 0000000..a5812c4
--- /dev/null
+++ b/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
@@ -0,0 +1,267 @@
+import React, { Fragment, useEffect, useState, useRef } from 'react';
+import * as $$ from '@/utils/utility';
+import ArcoUpload from '@/components/ArcoUpload';
+import NewFileCheck from '../../filesCheck/newFileCheck';
+import { IconLink } from '@arco-design/web-react/icon';
+import { Row, Col, Button } from 'antd';
+import { Form, Modal } from '@arco-design/web-react';
+import {
+ applyMaterials,
+ applyMaterials_active,
+ evidenceMaterials,
+ evidenceMaterials_active,
+} from '@/assets/images';
+import { CheckOutlined, } from '@ant-design/icons';
+import TableView from '@/components/TableView';
+
+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 });
+}
+
+function deleteFileByIdApi(data) {
+ return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data });
+}
+
+//表格数据
+const staticTableData = [
+ {
+ ownerType: "22_00018-101",
+ ownerTypeName: "申请材料",
+ size: 0,
+ fileNames: "-",
+ updateTime: '',
+ },
+ {
+ ownerType: "22_00018-102",
+ ownerTypeName: "证据材料",
+ size: 0,
+ fileNames: "-",
+ updateTime: '',
+ },
+]
+
+export default function FileTable(props) {
+ const formRef = useRef();
+ const [sourceType, setSourceType] = useState();
+ const [filesCheck, setFilesCheck] = useState(false);
+ const [upload, setUpLoad] = useState(false);
+ const [tableData, setTableData] = useState(staticTableData);
+ const [fileMap, setFileMap] = useState({});
+
+ // 列配置
+ const fakeColumns = [
+ {
+ title: '序号',
+ dataIndex: 'caseNo',
+ key: 'caseNo',
+ width: 100,
+ render: (text, record, index) => <span>{index + 1}</span>,
+ },
+ {
+ title: '材料类型',
+ dataIndex: 'ownerTypeName',
+ key: 'ownerTypeName',
+ width: 100,
+ },
+ {
+ title: '材料数量',
+ dataIndex: 'size',
+ key: 'size',
+ width: 180,
+ render: (text) => <span>{text}份</span>,
+
+ },
+ {
+ title: '材料名称',
+ dataIndex: 'fileNames',
+ key: 'fileNames',
+ width: 180,
+
+ },
+ {
+ title: '最新上传时间',
+ dataIndex: 'updateTime',
+ key: 'updateTime',
+ width: 180,
+ },
+ {
+ title: '操作',
+ dataIndex: 'perClassName',
+ key: 'perClassName',
+ width: 200,
+ render: (text, record) => (
+ <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}>
+ <div onClick={() => setFilesCheck(true)}>查看</div>
+ <div>删除</div>
+ <div>下载</div>
+ <div onClick={() => {
+ setSourceType(record.ownerType)
+ setUpLoad(true)
+ }}>上传</div>
+ </div>
+ )
+ },
+ // 更多列配置...
+ ];
+ const fileType = [
+ { value: '22_00018-101', label: '申请材料' },
+ { value: '22_00018-102', label: '证据材料' },
+ ]
+
+ const personIconType = (v) => {
+ switch (v) {
+ case '22_00018-101':
+ return [applyMaterials, applyMaterials_active,
+ ];
+ case '22_00018-102':
+ return [evidenceMaterials, evidenceMaterials_active];
+ }
+ }
+
+ //删除文件
+ const handleDelFile = async (id) => {
+ const res = await delFile(id)
+ if (res.type) {
+ $$.infoSuccess({ content: '删除成功!' });
+ }
+ }
+
+ const handleUpload = () => {
+ const newList = tableData.map(item => {
+ if(item.ownerType == sourceType) {
+ const data = fileMap[sourceType]
+ return {
+ ...item,
+ size: data.length,
+ fileNames: data.map(item => item.name).join(','),
+ updateTime: $$.timeFormat(data[data.length - 1].response.data[0].updateTime)
+ }
+ } else {
+ return item
+ }
+ })
+ setTableData(newList)
+ setUpLoad(false);
+ };
+
+ const formType = (type) => {
+ if (type === '22_00018-101') {
+ //申请材料
+ return (
+ <>
+ <Col span={24}>
+ <ArcoUpload
+ params={{
+ action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.mainId}&&ownerId=${props.mainId}&ownerType=22_00018-101`,
+ }}
+ field='file'
+ label=''
+ // editData={props.editData}
+ handleDelFile={handleDelFile}
+ onFileListChange={(v) => {
+ setFileMap({
+ '22_00018-101': v
+ })
+ }}
+ />
+ {fileMap[sourceType]?.length > 0 && <div style={{ position: 'absolute', top: '198px', left: '16px', color: '#86909C' }}>申请材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileMap[sourceType]?.length}</span></div>}
+ </Col>
+ </>
+ )
+ }
+ if (type === '22_00018-102') {
+ //证据材料
+ return (
+ <>
+ <Col span={24}>
+ <ArcoUpload
+ params={{
+ action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.mainId}&&ownerId=${props.mainId}&ownerType=22_00018-102`,
+ }}
+ field='file1'
+ label=''
+ // editData={props.editData}
+ handleDelFile={handleDelFile}
+ onFileListChange={(v) => {
+ setFileMap({
+ '22_00018-102': v
+ })
+ }}
+
+ />
+ {fileMap[sourceType]?.length > 0 && <div style={{ position: 'absolute', top: '198px', left: '16px', color: '#86909C' }}>证据材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileMap[sourceType]?.length}</span></div>}
+ </Col>
+ </>
+ )
+ }
+ }
+
+ return (
+ <Fragment>
+ <TableView
+ columns={fakeColumns}
+ dataSource={tableData}
+ size="small"
+ rowKey="ownerType"
+ bordered={true}
+ style={{ marginBottom: '65px' }}
+ />
+ <Modal
+ style={{ width: '512px' }}
+ visible={upload}
+ onCancel={() => setUpLoad(false)}
+ footer={null}
+ title='上传材料'
+ centered
+ >
+ <div style={{ paddingTop: '8px' }}>
+ <Row gutter={[30, 24]}>
+ {fileType.map((x, t) => {
+ return (
+ <Col span={12} key={t}>
+ <div
+ 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' }} />
+ <div className="casePerfection-cardTab-tab-name">{x.label}</div>
+ {x.value === sourceType && (
+ <>
+ <div className="casePerfection-cardTab-tab-triangle" />
+ <CheckOutlined className="casePerfection-cardTab-tab-check" />
+ </>
+ )}
+ </div>
+ </Col>
+ );
+ })}
+ <Col span={24}>
+ <Form
+ ref={formRef}
+ layout='vertical'
+ requiredSymbol={false}
+ initialValues={{
+ }}//默认值
+ style={{ position: 'relative' }}
+ >
+ <Row gutter={[32, 0]}>{formType(sourceType)}</Row>
+ </Form>
+ </Col>
+ <Button type="primary" style={{ marginTop: '-20px', marginLeft: '16px' }} onClick={() => handleUpload()}>上传完成</Button>
+ </Row>
+ </div>
+
+ </Modal >
+ <Modal style={{ width: '1200px' }} visible={filesCheck} onCancel={() => setFilesCheck(false)} footer={null} title='查看事件材料' centered>
+ <div style={{ marginTop: '-16px' }}>
+ <NewFileCheck />
+ </div>
+ </Modal>
+ </Fragment>
+ )
+}
diff --git a/gz-customerSystem/src/views/register/matterDetail/index.jsx b/gz-customerSystem/src/views/register/matterDetail/index.jsx
index a058c98..18e733b 100644
--- a/gz-customerSystem/src/views/register/matterDetail/index.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/index.jsx
@@ -12,29 +12,7 @@
export default function MatterDetail(props) {
- const [fakeData, setFakeData] = useState([{
- "trueName": "王大锤",
- "mobile": "13380313412",
- "certiType": "09_00015-1",
- "certiTypeName": "身份证",
- "certiNo": "440981199902025123",
- "perType": "15_020008-1",
- "perClass": "09_01001-1",
- "perTypeName": "申请方当事人",
- "perClassName": "自然人",
- "id": "24083010053310002"
- }, {
- "trueName": "刘俊峰",
- "mobile": "13380313412",
- "certiType": "09_00015-1",
- "certiTypeName": "身份证",
- "certiNo": "440981199902023234",
- "perType": "15_020008-2",
- "perClass": "09_01001-1",
- "perTypeName": "被申请方当事人",
- "perClassName": "自然人",
- "id": "24083010054710003"
- }]);//当事人信息数据
+ const [fakeData, setFakeData] = useState([]);//当事人信息数据
const [upload, setUpLoad] = useState(false);
const [filesCheck, setFilesCheck] = useState(false);
const [infoData, setInfoData] = useState({});
diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
index 0d9db5b..40078ea 100644
--- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -5,87 +5,34 @@
import * as $$ from '@/utils/utility';
import {
question1,
- applyMaterials,
- applyMaterials_active,
- evidenceMaterials,
- evidenceMaterials_active,
} from '@/assets/images';
-import { CheckOutlined, } from '@ant-design/icons';
-import TableView from '@/components/TableView';
import '../../index.less';
import ApplyDialog from "./applyDialog";
import AgentDialog from "./agentDialog";
-import NewFileCheck from '../../../filesCheck/newFileCheck';
-import { IconLink } from '@arco-design/web-react/icon';
import MapView from './map';
import { scan } from '@/assets/images/icon';
import { EventLevelDrawer, MattersDetail } from './levelDetail';
import DocumentScanner from '../../matterDetail/FileUpLoad';
-import ArcoUpload from '@/components/ArcoUpload';
+import FileTable from "../../matterDetail/FileTable";
const RadioGroup = Radio.Group;// 根据调解案号获取纠纷登记信息
const FormItem = Form.Item;
const InputSearch = Input.Search;
-const appUrl = $$.appUrl;
-function delFile(ids) {
- return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { ids } });
-}
-
-function listIdTypeInfoApi(data) {
- return $$.ax.request({ url: `fileInfo/listIdTypeInfo`, type: 'post', service: 'sys', data });
-}
-
-function deleteFileByIdApi(data) {
- return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data });
-}
const VisitorRegister = (props) => {
- const formRef = useRef();
const [dialogType, setDialogType] = useState();//添加当事人的类型
const [addVisabled, setAddVisabled] = useState(false);//添加当事人弹窗控制
const [fakeData, setFakeData] = useState([]);//当事人信息数据
const [scanFile, setScanFile] = useState(false);
- const [upload, setUpLoad] = useState(false);
- const [sourceType, setSourceType] = useState('1');
- const [filesCheck, setFilesCheck] = useState(false);
+
const [mapView, setMapView] = useState(false);
const [visible, setVisible] = useState(false);
const [apply, setApply] = useState(false);
const [editData, setEditData] = useState(null);
const [agentVisible, setAgentVisible] = useState(false);
- const [fileLength, setFileLength] = useState('');
- const [evidenceLength, SetEvidenceLength] = useState(null);
- const [matterNumber, setMatterNumber] = useState('');
- const [evidenceNumber, setEvidenceNumber] = useState('');
- const [applyFile, setApplyFile] = useState([]);
- const [evidenceFile, setEvidenceFile] = useState([]);
- const [fakeData1, setFakeData1] = useState([
- {
- ownerTyp: "22_00018-101",
- ownerTypeName: "申请材料",
- size: '0',
- ownerId: null,
- ownerName: null,
- perType: null,
- agentStatus: null,
- fileNames: "-",
- fileList: []
- },
- {
- ownerType: "22_00018-102",
- ownerTypeName: "证据材料",
- size: '0',
- ownerId: null,
- ownerName: null,
- perType: null,
- agentStatus: null,
- fileNames: "-",
- fileList: []
- },
- ]);
const peopleMap = {
'15_020008-1': '申请方',
@@ -94,177 +41,12 @@
'24_00006-2': '被申请方代理人'
}
- const fileType = [
- { value: '1', label: '申请材料' },
- { value: '2', label: '证据材料' },
- ]
-
useEffect(() => {
if (props.formRef.current) {
//引入当事人数据
props.formRef.current.setFieldValue('fakeData', fakeData)
}
}, [fakeData])
-
- const personIconType = (v) => {
- switch (v) {
- case '1':
- return [applyMaterials, applyMaterials_active,
- ];
- case '2':
- return [evidenceMaterials, evidenceMaterials_active];
- }
- }
-
- const handleChangeFile = (data) => {
- console.log(data, 'handleChangeFile')
- setApplyFile(data)
-
- }
-
- const handleChangeFile1 = (data) => {
- console.log(data, 'handleChangeFile1')
- setEvidenceFile(data)
- }
-
-
- //删除文件
- const handleDelFile = async (id) => {
- const res = await delFile(id)
- if (res.type) {
- $$.infoSuccess({ content: '删除成功!' });
- }
- }
-
- //批量删除文件
- const deleteFileById = async (data) => {
- const res = await deleteFileByIdApi(data)
- if (res.type) {
- $$.infoSuccess({ content: '删除成功!' });
- }
- }
-
-
-
-
- const listIdTypeInfo = async () => {
- const res = await listIdTypeInfoApi({
- mainId: props.mainId, //事项ID
- ownerIdList: [props.mainId], //具体所属编号
- typeList: []
- })
- if (res.type) {
- let data = res.data?.[0]?.fileList
- if (res.data.length > 0) {
- setFakeData1(data)
- }
- }
- }
-
- console.log(fakeData1,'fakeData1')
-
-
-
-
- const formType = (type) => {
- if (type === '1') {
- //申请材料
- return (
- <>
- <Col span={24}>
- <ArcoUpload
- params={{
- action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.mainId}&&ownerId=${props.mainId}&ownerType=22_00018-101`,
- }}
- field='file'
- label=''
- editData={props.editData}
- handleDelFile={handleDelFile}
- onFileListChange={(v) => { setFileLength(v); console.log(v, 'vvsetFileLength') }}
- />
- {fileLength?.length > 0 && <div style={{ position: 'absolute', top: '198px', left: '16px', color: '#86909C' }}>申请材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileLength?.length}</span></div>}
- </Col>
- </>
- )
- }
- if (type === '2') {
- //证据材料
- return (
- <>
- <Col span={24}>
- <ArcoUpload
- params={{
- action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.mainId}&&ownerId=${props.mainId}&ownerType=22_00018-102`,
- }}
- field='file1'
- label=''
- editData={props.editData}
- handleDelFile={handleDelFile}
- onFileListChange={(v) => { SetEvidenceLength(v); console.log(v, 'vvsetFileLength') }}
-
- />
- {evidenceLength?.length > 0 && <div style={{ position: 'absolute', top: '198px', left: '16px', color: '#86909C' }}>证据材料累计上传:<span style={{ color: '#1A6FB8' }}>{evidenceLength?.length}</span></div>}
- </Col>
- </>
- )
- }
- }
-
-
- // 列配置
- const fakeColumns = [
- {
- title: '序号',
- dataIndex: 'caseNo',
- key: 'caseNo',
- width: 100,
- render: (text, record, index) => <span>{index + 1}</span>,
- },
- {
- title: '材料类型',
- dataIndex: 'ownerTypeName',
- key: 'ownerTypeName',
- width: 60,
-
- },
- {
- title: '材料数量',
- dataIndex: 'size',
- key: 'size',
- width: 180,
- render: (text) => <span>{text}份</span>,
-
- },
- {
- title: '材料名称',
- dataIndex: 'fileNames',
- key: 'fileNames',
- width: 180,
-
- },
- {
- title: '最新上传时间',
- dataIndex: 'fileNames',
- key: 'fileNames',
- width: 180,
-
- },
- {
- title: '操作',
- dataIndex: 'perClassName',
- key: 'perClassName',
- width: 200,
- render: (text) => (
- <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}>
- <div onClick={() => setFilesCheck(true)}>查看</div>
- <div>删除</div>
- <div>下载</div>
- <div onClick={() => setUpLoad(true)}>上传</div>
- </div>
- )
- },
- // 更多列配置...
- ];
//获取当前时间
const getFormattedDateTime = () => {
@@ -294,11 +76,6 @@
setScanFile(false);
console.log(scanContent, 'scanContent')
- };
-
- const handleUpload = () => {
- listIdTypeInfo()
- setUpLoad(false);
};
const handleCancel = () => {
@@ -346,23 +123,6 @@
setDialogType(value.perType)
setEditData(value)
}
-
-
-
-
-
- const uploadQuery = {
- mainId: props.mainId,
- ownerCat: null,
- createStart: null,
- createEnd: null,
- uploaderType: null
- }
-
- // console.log(sourceType, 'sourceType')
- // console.log(props.formRef?.current?.getFields(),'formRef.current.getFields()')
- useEffect(() => {
- }, [])
return (
<div className='dataSync-page' style={{ ...props.style, marginTop: '8px' }}>
@@ -601,67 +361,13 @@
<div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>事件材料</h4>
</Space>
</Col>
- <TableView
- columns={fakeColumns}
- dataSource={fakeData1}
- size="small"
- rowKey="ownerType"
- bordered={true}
- style={{ marginBottom: '65px' }}
- />
+ <FileTable mainId={props.mainId}/>
<DocumentScanner
visible={scanFile}
onConfirm={handleConfirm}
onCancel={handleCancel}
/>
- <Modal style={{ width: '512px' }} visible={upload} onCancel={() => setUpLoad(false)} footer={null} title='上传材料' centered>
- <div style={{ paddingTop: '8px' }}>
- <Row gutter={[30, 24]}>
- {fileType.map((x, t) => {
- return (
- <Col span={12} key={t}>
- <div
- onClick={() => { 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' }} />
- <div className="casePerfection-cardTab-tab-name">{x.label}</div>
- {x.value === sourceType && (
- <>
- <div className="casePerfection-cardTab-tab-triangle" />
- <CheckOutlined className="casePerfection-cardTab-tab-check" />
- </>
- )}
- </div>
- </Col>
- );
- })}
- <Col span={24}>
- <Form
- ref={props.formRef}
- layout='vertical'
- requiredSymbol={false}
- initialValues={{
- }}//默认值
- style={{ position: 'relative' }}
- >
-
- <Row gutter={[32, 0]}>{formType(sourceType)}</Row>
- </Form>
- </Col>
- <Button type="primary" style={{ marginTop: '-20px', marginLeft: '16px' }} onClick={() => handleUpload()}>上传完成</Button>
- </Row>
- </div>
-
- </Modal >
- <Modal style={{ width: '1200px' }} visible={filesCheck} onCancel={() => setFilesCheck(false)} footer={null} title='查看事件材料' centered>
- {/* <div className="mediationWindow-modal-main" style={{ display: 'flex' }}> */}
- <div style={{ marginTop: '-16px' }}>
- <NewFileCheck />
- </div>
- {/* </div> */}
- </Modal>
<Modal
title={(editData ? '修改' : '添加') + peopleMap[dialogType]}
visible={addVisabled}
--
Gitblit v1.8.0