From 72cbacabf3d11cbc1aea30b4ae013e2e15a187a9 Mon Sep 17 00:00:00 2001 From: zhangyongtian <1181606322@qq.com> Date: Fri, 30 Aug 2024 17:53:56 +0800 Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh --- gz-customerSystem/src/views/register/visit/component/handle.jsx | 223 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 193 insertions(+), 30 deletions(-) diff --git a/gz-customerSystem/src/views/register/visit/component/handle.jsx b/gz-customerSystem/src/views/register/visit/component/handle.jsx index 620a5fc..bcced75 100644 --- a/gz-customerSystem/src/views/register/visit/component/handle.jsx +++ b/gz-customerSystem/src/views/register/visit/component/handle.jsx @@ -1,12 +1,14 @@ -import React, { useState } from 'react'; -import { Steps } from '@arco-design/web-react'; +import React, { useState, useRef } from 'react'; import { Col, Space, Row, Tooltip, Button } from 'antd'; -import { register, empty } from '../../../../assets/images' -import { Form, Input, Empty, Tabs, Typography, Modal } from '@arco-design/web-react'; +import { register, fold, down, empty, link } from '../../../../assets/images'; +import { Form, Input, Tabs, Typography, Empty } from '@arco-design/web-react'; import { question1, } from '@/assets/images'; -import ProgressStep from '../../../../components/ProgressStep/VisitStep' -import SelectObjModal from '../../../../components/SelectObjModal/selectPerson' -import WantUserTag from '../../../../components/WantUserTag/Handling' +import ProgressStep from '../../../../components/ProgressStep/VisitStep'; +import SelectObjModal from '../../../../components/SelectObjModal/selectPerson'; +import WantUserTag from '../../../../components/WantUserTag/Handling'; +import { scan } from '@/assets/images/icon' +import DocumentScanner from './FileUpLoad' + const InputSearch = Input.Search; const FormItem = Form.Item; @@ -22,24 +24,120 @@ const Handle = () => { const [selectedTab, setSelectedTab] = useState('1'); // 默认选中第一个 tab const [wantUser, setWantUser] = useState({}); + // const [scanFile, setScanFile] = useState(false); + const tabs = [ { index: '1', label: '承办部门' }, { index: '2', label: '配合部门' }, ]; const [isModalVisible, setIsModalVisible] = useState(false); - - const showModal = () => { - setIsModalVisible(true); - }; - - const hideModal = () => { - setIsModalVisible(false); - }; + const formRef = useRef(null); const handleTabChange = (newTabIndex) => { setSelectedTab(newTabIndex); }; + + const [records, setRecords] = useState([ + { + id: 1, + date: '2024 - 7 - 1 10:00', + location: '天河区棠下街综治中心', + remark: '配合部门', + showView: false, + details: [ + { + title: '操作人', + content: ( + <div style={{ display: 'flex' }}> + <div>李晓明</div> + <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} /> + </div> + ), + }, + { + title: '办理意见', + content: ( + <div> + 调解开始,我首先安抚双方情绪,确保对话在一个平和的氛围中展开。随后,我引导王先生详细说明了他的财务困境及还款意愿,同时让银行代表理解其处境,强调长期合作的重要性。经过反复沟通,银行同意调整还款计划,降低利率,并给予王先生一定的宽限期。王先生则承诺按新计划履行还款义务,双方最终达成一致,签署了调解协议。 + </div> + ), + }, + { + title: '办理附件', + content: ( + <a href="your-link-here.html" target="_blank"> + <img src={link} alt="" className="title-file" />江照月法人身份证明.pdf + </a> + ), + }, + ], + }, + { + id: 2, + date: '2024 - 7 - 2 14:00', + location: '天河区天河南街道办事处', + remark: '承办部门', + showView: false, + details: [ + { + title: '操作人', + content: ( + <div style={{ display: 'flex' }}> + <div>张伟</div> + <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} /> + </div> + ), + }, + { + title: '办理意见', + content: ( + <div> + 在本次协调会议中,我们成功解决了双方之间的纠纷,确保了所有参与方的利益得到了妥善处理。通过深入交流,各方达成了共识,同意采取一系列措施来解决现存的问题。 + </div> + ), + }, + { + title: '办理附件', + content: '广州市天河区天河南路200号', + }, + ], + }, + ]); + + + + const toggleView = (id) => { + setRecords(records.map(record => { + if (record.id === id) { + return { + ...record, + showView: !record.showView, + }; + } + return record; + })); + }; + + + const [scannerVisible, setScannerVisible] = useState(false); + + const handleConfirm = (text) => { + console.log('识别完成:', text); + setScannerVisible(false); + }; + + const openScanner = () => { + setScannerVisible(true); + formRef.current?.resetFields(); + formRef.current?.setFieldsValue({}); + }; + + const onCancel = () => { + setScannerVisible(false); + }; + + return ( <> @@ -110,23 +208,81 @@ </Col> <Col span={24}> <div style={{ color: 'rgb(134, 144, 156)' }}>办理记录</div> - <Empty - icon={ - <div - style={{ - display: 'flex', - // width: 160, - justifyContent: 'center', - }} + {records.length > 0 ? + <div> + {records.map(record => ( + <div key={record.id} className='container-bottom-left-record'> + <div className='container-bottom-left-record-top'> + { + record.showView ? ( + <img src={down} alt='' style={{ width: '18px', marginRight: '6px' }} onClick={() => toggleView(record.id)} /> + ) : ( + <img src={fold} alt='' className='container-bottom-left-record-top-icon' onClick={() => toggleView(record.id)} /> + ) + } + <div>{`${record.date} ${record.location}`}</div> + <div className={`container-bottom-left-record-top-${record.remark === '配合部门' ? 'remark' : 'hostOrg'}`}>{record.remark}</div> + </div> + <div className='container-bottom-left-record-bottom' style={{ display: record.showView ? 'block' : 'none' }}> + <table border="1" cellpadding="8" className='container-bottom-left-record-bottom-table'> + {record.details.map(detail => ( + <tr key={detail.title}> + <th bgcolor="#F7F8FA" className="table-title" width="120">{detail.title}</th> + <td>{detail.content}</td> + </tr> + ))} + </table> + </div> + </div> + ))} + </div> + : + <Empty + icon={ + <div + style={{ + display: 'flex', + justifyContent: 'center', + marginBottom: '100px' + }} + > + <img src={empty} alt='' style={{ width: '160px', height: '160px' }} /> + </div> + } + description='暂无数据' + /> + } + <div className='Form'> + <Col span={24} style={{ marginBottom: '8px' }}> + <Space size='small'> + <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>添加办理记录</h5> + </Space> + </Col> + <Col span={24}> + <FormItem + label={<div style={{ display: 'flex' }}> + 办理意见 + <img src={scan} alt="" style={{ marginRight: '-2px', marginLeft: '8px' }} /> + <div style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }} onClick={openScanner}>识别材料</div> + </div> + } + field='caseDes' + rules={[{ message: '请填写事项概况', required: true }]} > - <img src={empty} alt='' style={{ width: '160px', height: '160px' }} /> - </div> - } - description='暂无数据' - /> + <Input.TextArea + maxLength={2000} + showWordLimit + rows={5} + placeholder='请完整描述事项概况,应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过' + wrapperStyle={{ width: '100%' }} + /> + </FormItem> + </Col> + + </div> </Col> </Form> - <Space> + <Space style={{ marginTop: '38px', position: 'absolute', bottom: '4px' }}> <Button type="primary" style={{ backgroundColor: '#1A6FB8' }}>添加办理记录</Button> <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} >结案申请</Button> <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }}>联合处置申请</Button> @@ -193,7 +349,14 @@ }} onClose={() => setIsModalVisible(false)} /> - </div> + + <DocumentScanner + visible={scannerVisible} + onCancel={onCancel} + onConfirm={handleConfirm} + formRef={formRef} + /> + </div > </> ) -- Gitblit v1.8.0