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