From 2c947a24d56801c4c48c5d6ac7c43f1ede04d3d7 Mon Sep 17 00:00:00 2001 From: zhangyongtian <1181606322@qq.com> Date: Thu, 12 Sep 2024 15:39:47 +0800 Subject: [PATCH] feat: 大厅来访完善 --- gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx | 130 +++++++++++++++++++++++++++++++----------- 1 files changed, 95 insertions(+), 35 deletions(-) diff --git a/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx b/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx index e68d3ab..4afdef4 100644 --- a/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx +++ b/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx @@ -1,11 +1,13 @@ -import React, { useState, useEffect } from 'react'; -import { Typography, Button } from 'antd'; -import { CheckOutlined, } from '@ant-design/icons'; +import React, { useState, useRef } from 'react'; +import { Button } from 'antd'; +import * as $$ from '@/utils/utility'; import { Form, Input, Modal, Upload } from '@arco-design/web-react'; import { IconLink } from '@arco-design/web-react/icon'; - +import './index.less' const FormItem = Form.Item; +const appUrl = $$.appUrl; + const DocumentScanner = ({ visible, @@ -13,11 +15,12 @@ onCancel }) => { - + const formRef = useRef(); const [scanFile, setScanFile] = useState(false); const [scanImage, setScanImage] = useState(false); const [scaned, setScaned] = useState(false); const [fileView, setFileView] = useState(); + const [scanContent, setScanContent] = useState(''); const handleUploadChange = (info, currentFile) => { if (info.length > 0) { @@ -29,12 +32,59 @@ }); }; + const handleScaned = () => { + setScaned(true) + const content = fileView.response.data.ocrResult.wordsResult.join('\n') + setTimeout(() => { + console.log(formRef.current, content); + formRef.current.setFieldValue('scanContent', content) + }, 0) + setScanContent(content) + } - + const handleText = () => { + onConfirm(scanContent); + setScanFile(false); + setScanImage(false); + setScaned(false); + } return ( <> - <Modal style={{ width: '1200px' }} visible={visible} onCancel={onCancel} title='识别上传材料' centered footer={null}> + + <Modal + // style={{ width: '944px' }} + visible={scanImage} + onCancel={() => setScanImage(false)} + footer={null} + title='选择识别范围' + centered + unmountOnExit={true} + maskClosable={false} + > + <img + src={fileView?.url} + alt="" + style={{ + display: 'block', + margin: 'auto', + maxWidth: '100%', + maxHeight: '100%', + objectFit: 'contain', + }} + /> + <div><Button type="primary" onClick={() => handleScaned()} style={{ marginTop: '20px' }}>开始识别</Button></div> + </Modal> + <Modal + // style={{ width: '1200px' }} + visible={visible} + onCancel={onCancel} + title='识别上传材料' + centered + footer={null} + unmountOnExit={true} + maskClosable={false} + > <Form layout='vertical' requiredSymbol={false} @@ -51,12 +101,12 @@ // multiple limit={1} accept='image/*' - // action='/' + headers={{ Authorization: $$.getSessionStorage('customerSystemToken') }} + action={`${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/recognitionText`} onDrop={(e) => { }} tip='支持png、 jpg、pdf等格式文件上传,每次上传大小不超过10M' showUploadList={{ - // Please dont remove this comment fileIcon: <IconLink style={{ color: '#1D2129' }} />, }} // onChange={(info, currentFile) => { @@ -79,32 +129,42 @@ </Form> - </Modal> - <Modal style={{ width: '944px' }} visible={scanImage} onCancel={() => setScanImage(false)} footer={null} title='选择识别范围' centered> - <img - src={fileView?.url} - alt="" - style={{ - display: 'block', - margin: 'auto', - maxWidth: '100%', - maxHeight: '100%', - objectFit: 'contain', - }} - /> - <div><Button type="primary" onClick={() => setScaned(true)} style={{ marginTop: '20px' }}>开始识别</Button></div> - </Modal> - <Modal style={{ width: '1200px' }} visible={scaned} onCancel={() => setScaned(false)} footer={null} title='识别上传材料' centered> - <div style={{ marginBottom: '8px' }}>识别内容</div> - <Input.TextArea - showWordLimit - rows={5} - placeholder='' - wrapperStyle={{ width: '100%' }} - defaultValue='识别内容' - onChange={(v) => console.log(v, 'vvvvvv')} - /> - <div style={{ marginTop: '24px' }}><Button type="primary" onClick={() => { onConfirm(); setScanFile(false); setScanImage(false); setScaned(false); }}>使用文字</Button></div> + </Modal > + <Modal + className='scan-modal' + // style={{ width: '1200px' }} + wrapStyle={{ zIndex: 1002 }} + visible={scaned} + onCancel={() => setScaned(false)} + footer={null} + title='识别上传材料' + centered + unmountOnExit={true} + maskClosable={false} + mountOnEnter={false} + > + <Form + ref={formRef} + layout='vertical' + requiredSymbol={false} + scrollToFirstError={true} + initialValues={{ + }}//默认值 + > + <FormItem + label='识别内容' + field='scanContent' + > + <Input.TextArea + showWordLimit + rows={5} + placeholder='' + wrapperStyle={{ width: '100%' }} + onChange={(v) => console.log(v, 'vvvvvv')} + /> + </FormItem> + <div style={{ marginTop: '24px' }}><Button type="primary" onClick={() => { handleText() }}>使用文字</Button></div> + </Form> </Modal> </> -- Gitblit v1.8.0