From 33440bb15f8d7f07b68e34760129d3300cab5e88 Mon Sep 17 00:00:00 2001
From: zhangyongtian <1181606322@qq.com>
Date: Tue, 27 Aug 2024 10:57:21 +0800
Subject: [PATCH] feat:编辑当事人逻辑
---
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx | 195 ++++++++++++++++++++++++++++++++++--------------
1 files changed, 136 insertions(+), 59 deletions(-)
diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
index fd3929a..3dce4c6 100644
--- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -1,9 +1,8 @@
import React, { useState, useEffect, useRef } from "react";
import { Row, Col, Space, Tooltip, Button } from 'antd';
import { Form, Input, Radio, Select, DatePicker, Cascader, Modal, Upload, InputNumber } from '@arco-design/web-react';
-import "@arco-design/web-react/dist/css/arco.css";
-import PersonCard from '../../../../components/personCard';
-import * as $$ from '../../../../utils/utility';
+import PersonCard from '@/components/personCard';
+import * as $$ from '@/utils/utility';
import {
question1,
applyMaterials,
@@ -11,10 +10,9 @@
evidenceMaterials,
evidenceMaterials_active,
-} from '../../../../assets/images';
+} from '@/assets/images';
import { CheckOutlined, } from '@ant-design/icons';
-import "@arco-design/web-react/dist/css/arco.css";
-import TableView from '../../../../components/TableView';
+import TableView from '@/components/TableView';
import '../../index.less';
import ApplyDialog from "./applyDialog";
import AgentDialog from "./agentDialog";
@@ -23,6 +21,8 @@
import NewFileCheck from '../../../filesCheck/newFileCheck';
import { IconLink } from '@arco-design/web-react/icon';
import MapView from './map'
+import { scan } from '@/assets/images/icon'
+import MyDrawer from '@/components/MyDrawer';
const RadioGroup = Radio.Group;// 根据调解案号获取纠纷登记信息
const FormItem = Form.Item;
@@ -46,9 +46,10 @@
const [fileTip, setFileTip] = useState('0');
const [detailVisabled, setDetailVisabled] = useState(false);//查看信息弹窗控制
const [mapView, setMapView] = useState(false);
- const [flagId, setFlagId] = useState(0);//赋予当事人唯一id,用于删除
- const formRef = useRef();
-
+ const [flagId, setFlagId] = useState(1);//赋予当事人唯一id,用于删除
+ const [visible, setVisible] = useState(false);
+ const [apply, setApply] = useState(false);
+ const [editData, setEditData] = useState(null);
const addressOptions = [
{ label: '地址1', value: 'address1' },
@@ -248,7 +249,7 @@
},
{
- title: '上传时间',
+ title: '最新上传时间',
dataIndex: 'mediateUserName',
key: 'mediateUserName',
width: 180,
@@ -352,9 +353,9 @@
return `${year}-${month}-${day} ${hours}:${minutes}`;
}
- //添加申请人: 0、被申请人: 1、代理人: 2
+ //添加申请人: 0、被申请人: 1、申请代理人: 2、被申请代理人:3
const handleAdd = (type) => {
- if (type === 2) {
+ if (type === 2 || type === 3) {
setAgentVisible(true)
} else {
setAddVisabled(true)
@@ -369,12 +370,24 @@
//添加当事人
const handleAddParty = (value) => {
- console.log(value);
- setFakeData([...fakeData, {
- ...value,
- id: flagId
- }])
- setFlagId(flagId + 1)
+ if (value.id) {
+ //编辑
+ const newList = fakeData.map(item => {
+ if (item.id === value.id) {
+ return value
+ } else {
+ return item
+ }
+ })
+ setFakeData(newList)
+ setEditData(null)
+ } else {
+ setFakeData([...fakeData, {
+ ...value,
+ id: flagId
+ }])
+ setFlagId(flagId + 1)
+ }
}
//删除当事人
@@ -382,6 +395,19 @@
event.stopPropagation();
const filterData = fakeData.filter(item => item.id !== value.id)
setFakeData(filterData)
+ }
+
+ //编辑
+ const handleEdit = (value) => {
+ console.log(value);
+ if (value.partyType === 0 || value.partyType === 1) {
+ //当事人
+ setAddVisabled(true)
+ } else {
+ //代理人
+ setAgentVisible(true)
+ }
+ setEditData(value)
}
@@ -401,6 +427,7 @@
handleCheckParty={handleCheckParty}
handleAdd={handleAdd}
handleDeleteParty={handleDeleteParty}
+ handleEdit={handleEdit}
/>
</div>
<Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '8px' }}>
@@ -518,10 +545,11 @@
<FormItem
label={<div style={{ display: 'flex' }}>
事项概况
- <Tooltip title='1111'>
+ <Tooltip onClick={() => setVisible(true)}>
<img src={question1} alt="" style={{ width: '13px', height: '13px', marginTop: '4px', marginLeft: '4px' }} />
</Tooltip>
<div className="must">必填</div>
+ <img src={scan} alt="" style={{ marginRight: '-2px', marginLeft: '8px' }} />
<div style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }} onClick={() => setScanFile(true)}>识别上传材料</div>
</div>
}
@@ -532,7 +560,7 @@
maxLength={2000}
showWordLimit
rows={5}
- placeholder='请填写问题发生的起因、过程和结果'
+ placeholder='请完整描述事项概况,应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过'
wrapperStyle={{ width: '100%' }}
/>
</FormItem>
@@ -541,10 +569,11 @@
<FormItem
label={<div style={{ display: 'flex' }}>
申请请求
- <Tooltip title='1111'>
+ <Tooltip onClick={() => setApply(true)}>
<img src={question1} alt="" style={{ width: '13px', height: '13px', marginTop: '4px', marginLeft: '4px' }} />
</Tooltip>
<div className="must">必填</div>
+ <img src={scan} alt="" style={{ marginRight: '-2px', marginLeft: '8px' }} />
<div style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }} onClick={() => setScanFile(true)}>识别上传材料</div>
</div>
}
@@ -561,13 +590,16 @@
/>
</FormItem>
</Col>
- <div style={{ marginLeft: '16px', padding: '12px 16px', backgroundColor: '#EFF8FF', borderRadius: '2px', marginTop: '4px' }}>
+ <div style={{ marginLeft: '16px', padding: '12px 16px', backgroundColor: '#F2F3F5', borderRadius: '2px', marginTop: '4px', display: 'flex', alignItems: 'center' }}>
<FormItem
label='是否重大矛盾纠纷'
- style={{ marginBottom: '-20px' }}
+ style={{ width: '300px', marginBottom: 0 }}
field='isSerious'
+ layout='horizontal'
+ labelCol={{ span: 11 }}
+ wrapperCol={{ span: 13 }}
>
- <RadioGroup options={['否', '是']} style={{ marginBottom: 20 }} />
+ <RadioGroup options={['否', '是']} />
</FormItem>
</div>
</Row>
@@ -700,9 +732,11 @@
</Modal>
<Modal style={{ width: '1200px' }} visible={filesCheck} onCancel={() => setFilesCheck(false)} footer={null} title='查看事件材料' centered>
- <div className="mediationWindow-modal-main" style={{ display: 'flex' }}>
+ {/* <div className="mediationWindow-modal-main" style={{ display: 'flex' }}> */}
+ <div style={{ marginTop: '-16px' }}>
<NewFileCheck />
</div>
+ {/* </div> */}
</Modal>
<Modal
title={'添加' + peopleMap[dialogType]}
@@ -712,11 +746,14 @@
autoFocus={false}
focusLock={true}
footer={null}
+ unmountOnExit={true}
+ maskClosable={false}
>
<ApplyDialog
dialogType={dialogType}
onClose={() => setAddVisabled(false)}
handleAddParty={handleAddParty}
+ editData={editData}
/>
</Modal>
<Modal
@@ -727,11 +764,15 @@
autoFocus={false}
focusLock={true}
footer={null}
+ unmountOnExit={true}
+ maskClosable={false}
>
<AgentDialog
handleAddParty={handleAddParty}
onClose={() => setAgentVisible(false)}
fakeData={fakeData}
+ dialogType={dialogType}
+ editData={editData}
/>
</Modal>
<Modal
@@ -742,44 +783,80 @@
autoFocus={false}
focusLock={true}
footer={null}
+ unmountOnExit={true}
+ maskClosable={false}
>
<DetailDialog />
</Modal>
- <Modal style={{ width: '1200px' }} visible={mapView} onCancel={() => setMapView(false)} footer={null} title='选择纠纷发生地' centered>
- <Row gutter={[16, 0]}>
- <Col span={16}>
- <Form
- ref={formRef}
- requiredSymbol={false}
- layout='inline'
- {...formItemLayout}
- style={{ marginBottom: '8px' }}
- >
- <FormItem
- label='查询位置:'
- field='name'
- onChange={(e) => console.log(e.target.value, 'vvv')}
- >
- <Input placeholder='请输入' style={{ width: '510px' }} />
- </FormItem>
- <Button style={{ marginRight: '20px' }}>
- 重置
- </Button>
- <Button
- type="primary"
- // onClick={handleSave}
- >
- 查询
- </Button>
- </Form>
- <MapView />
- </Col>
- <Col span={8}>
- <div style={{ color: '#86909C', marginTop: '43px' }}>附近地址</div>
- </Col>
-
- </Row>
+ <Modal
+ style={{ width: '1200px' }}
+ visible={mapView}
+ onCancel={() => setMapView(false)}
+ footer={null}
+ title='选择纠纷发生地'
+ centered
+ unmountOnExit={true}
+ maskClosable={false}
+ >
+ <MapView />
</Modal>
+ <MyDrawer
+ title='事项概况指南'
+ visible={visible}
+ width={1000}
+ style={{ position: 'absolute' }}
+ onClose={() => setVisible(false)}
+ titleBefore={true}
+ >
+ <div style={{ marginTop: '-8px' }}>
+ 事项简述应该填写完整,完整的事项简述应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过。<br />
+ 例如:<br />
+ 2024年8月13日,张某与女性好友王某在某烧烤档就餐期间发生场盾争执,报警人称女方从今年一月份开始,以各种理由让其帮忙付了外卖费,送金链等首饰,但又不确认关系,女方后期还拉黑了报警人,因此报警人认为女方涉嫌诈骗。
+ </div>
+ </MyDrawer>
+ <MyDrawer
+ title='事件等级指南'
+ visible={apply}
+ width={1000}
+ style={{ position: 'absolute' }}
+ onClose={() => setApply(false)}
+ titleBefore={true}
+ >
+ <div style={{ marginTop: '-8px' }}>
+ <div>
+ <div style={{ color: '#1A6FB8', fontSize: '15px', lineHeight: '23px', marginBottom: '8px' }}>一类重点事件</div>
+ 1、5人(含5人)以上到非接待场所聚集、滞留、静坐、游行或准备上访;<br />
+ 2、拉横幅、穿着“状衣”、呼喊口号、呼喊标语、堵塞交通非法占据公其场所、扰乱公共秩序、向他人散发传单等上访材料;<br />
+ 3、拖欠工资、劳资纠纷涉及人数5人以上;<br />
+ 4、拖欠工资总全额5万元以上,经济合同外涉金额20万元以上;<br />
+ 5、扬言到市赴省进京越级上访;
+ 6、存在轻生、自残等危险行为,打砸公私财物等极端倾向;<br />
+ 7、群体性民事纠纷(5人及5人以上的邻里矛盾纠纷、经济债务纠纷、家庭纠纷等可能导致“民转刑”的民事纠纷);8、存在重大安全隐患、重大不稳定因索的矛盾;9、涉及政治类,非宗教类的非访宣传(在出租屋内从事涉邪教迷信印刷、存放资料的;在公共场所粘贴类似邪教的符号、图案、标志等)10、县(市、区)职能部门、各镇(街道)分管领导根据应急情况认为有必要启动红色预警机制的其他矛盾纠纷。
+ </div>
+ <div>
+ <div style={{ color: '#1A6FB8', fontSize: '15px', lineHeight: '23px', marginBottom: '8px', marginTop: '20px' }}>二类重点事件</div>
+ 1、5人(含5人)以上到非接待场所聚集、滞留、静坐、游行或准备上访;<br />
+ 2、拉横幅、穿着“状衣”、呼喊口号、呼喊标语、堵塞交通非法占据公其场所、扰乱公共秩序、向他人散发传单等上访材料;<br />
+ 3、拖欠工资、劳资纠纷涉及人数5人以上;<br />
+ 4、拖欠工资总全额5万元以上,经济合同外涉金额20万元以上;<br />
+ 5、扬言到市赴省进京越级上访;
+ 6、存在轻生、自残等危险行为,打砸公私财物等极端倾向;<br />
+ 7、群体性民事纠纷(5人及5人以上的邻里矛盾纠纷、经济债务纠纷、家庭纠纷等可能导致“民转刑”的民事纠纷);8、存在重大安全隐患、重大不稳定因索的矛盾;9、涉及政治类,非宗教类的非访宣传(在出租屋内从事涉邪教迷信印刷、存放资料的;在公共场所粘贴类似邪教的符号、图案、标志等)10、县(市、区)职能部门、各镇(街道)分管领导根据应急情况认为有必要启动红色预警机制的其他矛盾纠纷。
+ </div>
+ <div>
+ <div style={{ color: '#1A6FB8', fontSize: '15px', lineHeight: '23px', marginBottom: '8px', marginTop: '20px' }}>三类普通事件</div>
+ 1、5人(含5人)以上到非接待场所聚集、滞留、静坐、游行或准备上访;<br />
+ 2、拉横幅、穿着“状衣”、呼喊口号、呼喊标语、堵塞交通非法占据公其场所、扰乱公共秩序、向他人散发传单等上访材料;<br />
+ 3、拖欠工资、劳资纠纷涉及人数5人以上;<br />
+ 4、拖欠工资总全额5万元以上,经济合同外涉金额20万元以上;<br />
+ 5、扬言到市赴省进京越级上访;
+ 6、存在轻生、自残等危险行为,打砸公私财物等极端倾向;<br />
+ 7、群体性民事纠纷(5人及5人以上的邻里矛盾纠纷、经济债务纠纷、家庭纠纷等可能导致“民转刑”的民事纠纷);8、存在重大安全隐患、重大不稳定因索的矛盾;9、涉及政治类,非宗教类的非访宣传(在出租屋内从事涉邪教迷信印刷、存放资料的;在公共场所粘贴类似邪教的符号、图案、标志等)10、县(市、区)职能部门、各镇(街道)分管领导根据应急情况认为有必要启动红色预警机制的其他矛盾纠纷。
+ </div>
+
+ </div>
+ </MyDrawer>
+
</div>
)
}
--
Gitblit v1.8.0