From 558043a024fccd7ebb86b6927ae12757922c24c8 Mon Sep 17 00:00:00 2001 From: zhangyongtian <1181606322@qq.com> Date: Fri, 30 Aug 2024 14:57:34 +0800 Subject: [PATCH] feat:更改当事人组件 --- gz-customerSystem/src/views/register/visit/component/applyDialog.jsx | 2 gz-customerSystem/src/components/personCard/KeyVisits.jsx | 0 gz-customerSystem/src/components/personCard/DetailDialog.jsx | 2 gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx | 8 - gz-customerSystem/src/views/register/visit/component/agentDialog.jsx | 2 gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx | 28 ------ gz-customerSystem/src/components/personCard/index.jsx | 191 ++++++++++++++++++++++++++++------------------- gz-customerSystem/src/views/register/visit/index.jsx | 7 + 8 files changed, 124 insertions(+), 116 deletions(-) diff --git a/gz-customerSystem/src/views/register/visit/component/detailDialog.jsx b/gz-customerSystem/src/components/personCard/DetailDialog.jsx similarity index 99% rename from gz-customerSystem/src/views/register/visit/component/detailDialog.jsx rename to gz-customerSystem/src/components/personCard/DetailDialog.jsx index 7810b96..a62c172 100644 --- a/gz-customerSystem/src/views/register/visit/component/detailDialog.jsx +++ b/gz-customerSystem/src/components/personCard/DetailDialog.jsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react' -import KeyVisits from "./keyVisits"; +import KeyVisits from "./KeyVisits"; import { link } from '@/assets/images' export default function DetailDialog(props) { diff --git a/gz-customerSystem/src/views/register/visit/component/keyVisits.jsx b/gz-customerSystem/src/components/personCard/KeyVisits.jsx similarity index 100% rename from gz-customerSystem/src/views/register/visit/component/keyVisits.jsx rename to gz-customerSystem/src/components/personCard/KeyVisits.jsx diff --git a/gz-customerSystem/src/components/personCard/index.jsx b/gz-customerSystem/src/components/personCard/index.jsx index dc1acb3..df5109e 100644 --- a/gz-customerSystem/src/components/personCard/index.jsx +++ b/gz-customerSystem/src/components/personCard/index.jsx @@ -6,20 +6,30 @@ * @FilePath: \gzDyh\gz-customerSystem\src\components\personCard\index.jsx * @Description: 来访登记当事人卡片 */ -import React from 'react'; +import React, { Fragment, useState } from 'react'; import PropTypes from 'prop-types'; import { Typography, Row, Col, Space, Tooltip } from 'antd'; +import { Modal } from '@arco-design/web-react'; import { del, add } from '../../assets/images'; -import * as $$ from '@/utils/utility'; +import DetailDialog from "./DetailDialog"; const { Link, Text } = Typography; /** * isCheck, // 是否无操作 * data, // 当事人数据 - * handleCheckParty, // 点击查看详情 * handleDeleteParty, // 删除当事人 */ -const PersonCard = ({ isCheck, data, handleCheckParty, handleDeleteParty, handleAdd, handleEdit }) => { +const PersonCard = ({ isCheck, data, handleDeleteParty, handleAdd, handleEdit }) => { + const [editData, setEditData] = useState(null); + const [detailVisabled, setDetailVisabled] = useState(false);//查看信息弹窗控制 + const [dialogType, setDialogType] = useState(0);//添加当事人的类型 + + const peopleMap = { + '15_020008-1': '申请方', + '15_020008-2': '被申请方', + '24_00006-1': '申请方代理人', + '24_00006-2': '被申请方代理人' + } let isAgent = false let isAgentFor = false const typeList = data.map(item => { @@ -31,83 +41,110 @@ if (typeList.indexOf('15_020008-2') != -1) { isAgentFor = true } + + const handleCheckParty = (value) => { + setDialogType(value.perType) + setEditData(value) + setDetailVisabled(true) + } + return ( - <Row gutter={[24, 16]}> - {data.map((x, t) => ( - <Col span={7} key={t}> - <div className="public-personCard" style={{ cursor: 'pointer' }}> - <div - className={`public-personCard-card public-personCard-card-${(x.perType === '15_020008-1' || x.perType === '24_00006-1') ? 'blue' : 'orange'}`} - onClick={() => handleCheckParty(x)} - > - {x.trueName.substr(0, 1)} - <div className="public-personCard-card-check">查看</div> - <img - src={del} - alt='' - style={{ width: '16px', height: '16px', position: 'absolute', top: '-8px', left: '56px' }} - onClick={(event) => { handleDeleteParty(event, x) }} - /> - </div> - <div className="public-personCard-content"> - <div className="public-personCard-title"> - <Text style={{ maxWidth: '80%', paddingRight: '8px' }} ellipsis={{ tooltip: x.trueName }}> - {x.trueName} - </Text> - <Text onClick={() => { handleEdit(x) }} ellipsis={{ tooltip: x.perTypeName }} className={`public-personCard-tag public-personCard-tag-${(x.perType === '15_020008-1' || x.perType === '24_00006-1') ? 'blue' : 'orange'}`}> - {x.perTypeName} - </Text> + <Fragment> + <Row gutter={[24, 16]}> + {data.map((x, t) => ( + <Col span={7} key={t}> + <div className="public-personCard" style={{ cursor: 'pointer' }}> + <div + className={`public-personCard-card public-personCard-card-${(x.perType === '15_020008-1' || x.perType === '24_00006-1') ? 'blue' : 'orange'}`} + onClick={() => handleCheckParty(x)} + > + {x.trueName.substr(0, 1)} + <div className="public-personCard-card-check">查看</div> + {isCheck && <img + src={del} + alt='' + style={{ width: '16px', height: '16px', position: 'absolute', top: '-8px', left: '56px' }} + onClick={(event) => { handleDeleteParty(event, x) }} + />} </div> - { - (x.perClass === '09_01001-1' || !x.perClass) && - <> - <div>证件号码:{x.certiNo}</div> - <div>联系方式:{x.mobile}</div> - </> - } - { - x.perClass === '09_01001-2' && - <> - <div>统一社会信用代码:{x.orgaCode}</div> - <div>法定代表人:{x.deputy}</div> - </> - } - { - x.perClass === '09_01001-3' && - <> - <div>组织机构代码:{x.orgaCode}</div> - <div>机构代表人:{x.deputy}</div> - </> - } - <Space style={{ display: 'flex', flexWrap: 'wrap' }}> - {x.remark?.map((item, index) => ( - <div key={index} style={{ lineHeight: '22px', padding: '0px 8px', backgroundColor: `${item.color}`, width: 'fit-content', borderRadius: '4px', marginTop: '4px', color: '#fff' }}>{item.label}</div> - ))} - </Space> + <div className="public-personCard-content"> + <div className="public-personCard-title"> + <Text style={{ maxWidth: '80%', paddingRight: '8px' }} ellipsis={{ tooltip: x.trueName }}> + {x.trueName} + </Text> + <Text onClick={() => { handleEdit(x) }} ellipsis={{ tooltip: x.perTypeName }} className={`public-personCard-tag public-personCard-tag-${(x.perType === '15_020008-1' || x.perType === '24_00006-1') ? 'blue' : 'orange'}`}> + {x.perTypeName} + </Text> + </div> + { + (x.perClass === '09_01001-1' || !x.perClass) && + <> + <div>证件号码:{x.certiNo}</div> + <div>联系方式:{x.mobile}</div> + </> + } + { + x.perClass === '09_01001-2' && + <> + <div>统一社会信用代码:{x.orgaCode}</div> + <div>法定代表人:{x.deputy}</div> + </> + } + { + x.perClass === '09_01001-3' && + <> + <div>组织机构代码:{x.orgaCode}</div> + <div>机构代表人:{x.deputy}</div> + </> + } + <Space style={{ display: 'flex', flexWrap: 'wrap' }}> + {x.remark?.map((item, index) => ( + <div key={index} style={{ lineHeight: '22px', padding: '0px 8px', backgroundColor: `${item.color}`, width: 'fit-content', borderRadius: '4px', marginTop: '4px', color: '#fff' }}>{item.label}</div> + ))} + </Space> + </div> </div> - </div> - </Col> - ))} - <Col span={3}> - <div className="dataSync-addBtn"> - <Tooltip - title={(<Space direction='vertical '> - <div className="dataSync-btnApply" style={{ backgroundColor: '#1A6FB8' }} onClick={() => { handleAdd('15_020008-1') }}>申请方当事人</div> - {isAgent && <div className="dataSync-btnApply" style={{ backgroundColor: '#3491FA' }} onClick={() => { handleAdd('24_00006-1') }}>申请方代理人</div>} - <div className="dataSync-btnApply" style={{ backgroundColor: '#EF6C24' }} onClick={() => { handleAdd('15_020008-2') }}>被申请方当事人</div> - {isAgentFor && <div className="dataSync-btnApply" style={{ backgroundColor: '#FA8C16' }} onClick={() => { handleAdd('24_00006-2') }}>被申请方代理人</div>} - </Space>)} - placement={data.length !== 0 && data.length % 3 === 0 ? 'left' : "right"} - color='#ffff' - overlayStyle={{}} - > - <div style={{ backgroundColor: '#f2f3f5', borderRadius: '50%', width: '64px', height: '64px' }}> - <img src={add} alt="添加" style={{ width: '32px', margin: '16px' }} /> + </Col> + ))} + {isCheck && + <Col span={3}> + <div className="dataSync-addBtn"> + <Tooltip + title={(<Space direction='vertical '> + <div className="dataSync-btnApply" style={{ backgroundColor: '#1A6FB8' }} onClick={() => { handleAdd('15_020008-1') }}>申请方当事人</div> + {isAgent && <div className="dataSync-btnApply" style={{ backgroundColor: '#3491FA' }} onClick={() => { handleAdd('24_00006-1') }}>申请方代理人</div>} + <div className="dataSync-btnApply" style={{ backgroundColor: '#EF6C24' }} onClick={() => { handleAdd('15_020008-2') }}>被申请方当事人</div> + {isAgentFor && <div className="dataSync-btnApply" style={{ backgroundColor: '#FA8C16' }} onClick={() => { handleAdd('24_00006-2') }}>被申请方代理人</div>} + </Space>)} + placement={data.length !== 0 && data.length % 3 === 0 ? 'left' : "right"} + color='#ffff' + overlayStyle={{}} + > + <div style={{ backgroundColor: '#f2f3f5', borderRadius: '50%', width: '64px', height: '64px' }}> + <img src={add} alt="添加" style={{ width: '32px', margin: '16px' }} /> + </div> + </Tooltip> </div> - </Tooltip> - </div> - </Col> - </Row> + </Col> + } + </Row> + <Modal + title={'查看' + peopleMap[dialogType]} + visible={detailVisabled} + onOk={() => setDetailVisabled(false)} + onCancel={() => { + setDetailVisabled(false) + setEditData(null) + }} + autoFocus={false} + focusLock={true} + footer={null} + unmountOnExit={true} + maskClosable={false} + > + <DetailDialog editData={editData} /> + </Modal> + </Fragment> ); }; diff --git a/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx b/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx index 4e346eb..418a908 100644 --- a/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx +++ b/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx @@ -182,12 +182,8 @@ </Col> <div style={{ margin: '16px 0' }}> <PersonCard - isCheck={true} - partyType={'applicant'} // 这里设定为申请人 + isCheck={false} data={fakeData} - handleCheckParty={handleCheckParty} - handleAdd={handleAdd} - handleDeleteParty={handleDeleteParty} /> </div> <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '4px' }}> @@ -305,7 +301,7 @@ </Typography.Paragraph> } { - props.active === '3' && <Typography.Paragraph style={style}> + (props.active === '3' && props.current === 3) && <Typography.Paragraph style={style}> <Handle /> </Typography.Paragraph> } diff --git a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx index 5d4197d..f9f8031 100644 --- a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx +++ b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx @@ -1,7 +1,7 @@ import React, { useState, useEffect, useRef, Fragment } from "react"; import { Row, Col, Space } from 'antd'; import { Form, Input, Button, Radio, Select, Checkbox, Upload } from '@arco-design/web-react'; -import KeyVisits from "./keyVisits"; +import KeyVisits from "@/components/personCard/KeyVisits"; import { IconLink, } from '@arco-design/web-react/icon'; diff --git a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx index f2cb86c..2fb2b3e 100644 --- a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx +++ b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx @@ -13,7 +13,7 @@ caseperfection_organize_active, } from '@/assets/images/icon'; import { Form, Input, Button, Radio, Select, Modal, Cascader, Upload, Message } from '@arco-design/web-react'; -import KeyVisits from "./keyVisits"; +import KeyVisits from "@/components/personCard/KeyVisits"; import SelectUnitDialog from "./selectUnitDialog"; import { IconLink, diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx index 4954c9e..1e1a0c1 100644 --- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx +++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx @@ -15,7 +15,6 @@ import '../../index.less'; import ApplyDialog from "./applyDialog"; import AgentDialog from "./agentDialog"; -import DetailDialog from "./detailDialog"; import NewFileCheck from '../../../filesCheck/newFileCheck'; import { IconLink } from '@arco-design/web-react/icon'; import MapView from './map' @@ -32,7 +31,7 @@ const VisitorRegister = (props) => { - const [dialogType, setDialogType] = useState(0);//添加当事人的类型 + const [dialogType, setDialogType] = useState();//添加当事人的类型 const [addVisabled, setAddVisabled] = useState(false);//添加当事人弹窗控制 const [fakeData, setFakeData] = useState([]);//当事人信息数据 const [scanFile, setScanFile] = useState(false); @@ -43,7 +42,6 @@ const [filesCheck, setFilesCheck] = useState(false); const [fileView, setFileView] = useState(); const [fileTip, setFileTip] = useState('0'); - const [detailVisabled, setDetailVisabled] = useState(false);//查看信息弹窗控制 const [mapView, setMapView] = useState(false); const [visible, setVisible] = useState(false); const [apply, setApply] = useState(false); @@ -299,13 +297,6 @@ } } - //查看 - const handleCheckParty = (value) => { - setDialogType(value.perType) - setEditData(value) - setDetailVisabled(true) - } - //获取当前时间 const getFormattedDateTime = () => { let now = new Date(); @@ -378,7 +369,6 @@ <PersonCard isCheck={true} data={fakeData} - handleCheckParty={handleCheckParty} handleAdd={handleAdd} handleDeleteParty={handleDeleteParty} handleEdit={handleEdit} @@ -760,22 +750,6 @@ dialogType={dialogType} editData={editData} /> - </Modal> - <Modal - title={'查看' + peopleMap[dialogType]} - visible={detailVisabled} - onOk={() => setDetailVisabled(false)} - onCancel={() => { - setDetailVisabled(false) - setEditData(null) - }} - autoFocus={false} - focusLock={true} - footer={null} - unmountOnExit={true} - maskClosable={false} - > - <DetailDialog editData={editData} /> </Modal> <Modal style={{ width: '1200px' }} diff --git a/gz-customerSystem/src/views/register/visit/index.jsx b/gz-customerSystem/src/views/register/visit/index.jsx index 869ad11..8a3be63 100644 --- a/gz-customerSystem/src/views/register/visit/index.jsx +++ b/gz-customerSystem/src/views/register/visit/index.jsx @@ -39,7 +39,7 @@ const formRef = useRef(); const [isReview, setIsReview] = useState(false);//预览页面控制 - const [current, setCurrent] = useState(1); + const [current, setCurrent] = useState(2); const [tabsActive, setTabsActive] = useState('1'); const [tabsList, setTabList] = useState([ { @@ -56,6 +56,7 @@ ]) const breadcrumbDataMap = { 1: { breadcrumbData: [{ title: '工作台' }, { title: '来访登记' }], title: '来访登记' }, + 2: { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' }, 3: { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' } } @@ -192,7 +193,7 @@ </Fragment> } { - current === 3 && + (current === 2 || current === 3) && <Tabs defaultActiveTab='1' onChange={(v) => setTabsActive(v)}> {tabsList?.map(item => { return <TabPane @@ -216,7 +217,7 @@ </Steps> </div> } - <MattersInfo active={tabsActive} /> + <MattersInfo active={tabsActive} current={current}/> </TabPane> })} </Tabs> -- Gitblit v1.8.0