From 43c316de7163b3ea25bd8d554b07c0b7098c9456 Mon Sep 17 00:00:00 2001
From: zhangyongtian <1181606322@qq.com>
Date: Wed, 21 Aug 2024 14:28:28 +0800
Subject: [PATCH] feat: 添加代理人逻辑
---
gz-customerSystem/src/views/register/visit/component/applyDialog.jsx | 16 ++++---
gz-customerSystem/src/views/register/visit/component/agentDialog.jsx | 31 +++++++++++----
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx | 7 ++-
gz-customerSystem/src/views/register/visit/component/detailDialog.jsx | 2
gz-customerSystem/src/components/personCard/index.jsx | 19 ++++++---
5 files changed, 50 insertions(+), 25 deletions(-)
diff --git a/gz-customerSystem/src/components/personCard/index.jsx b/gz-customerSystem/src/components/personCard/index.jsx
index fbc1e78..d9e33c6 100644
--- a/gz-customerSystem/src/components/personCard/index.jsx
+++ b/gz-customerSystem/src/components/personCard/index.jsx
@@ -20,11 +20,15 @@
*/
const PersonCard = ({ isCheck, data, handleCheckParty, handleDeleteParty, handleAdd }) => {
let isAgent = false
+ let isAgentFor = false
const typeList = data.map(item => {
return item.partyType
})//获取有多少申请人和被申请人
- if (typeList.indexOf(0) != -1 && typeList.indexOf(1) != -1) {
+ if (typeList.indexOf(0) != -1) {
isAgent = true
+ }
+ if (typeList.indexOf(1) != -1) {
+ isAgentFor = true
}
return (
<Row gutter={[24, 16]}>
@@ -32,7 +36,7 @@
<Col span={7} key={t}>
<div className="public-personCard" style={{ cursor: 'pointer' }}>
<div
- className={`public-personCard-card public-personCard-card-${x.partyType === 0 ? 'blue' : 'orange'}`}
+ className={`public-personCard-card public-personCard-card-${(x.partyType === 0 || x.partyType === 2) ? 'blue' : 'orange'}`}
onClick={() => handleCheckParty(x)}
>
{x.trueName.substr(0, 1)}
@@ -49,12 +53,12 @@
<Text style={{ maxWidth: '80%', paddingRight: '8px' }} ellipsis={{ tooltip: x.trueName }}>
{x.trueName}
</Text>
- <Text ellipsis={{ tooltip: x.perClassName }} className={`public-personCard-tag public-personCard-tag-${x.partyType === 0 ? 'blue' : 'orange'}`}>
+ <Text ellipsis={{ tooltip: x.perClassName }} className={`public-personCard-tag public-personCard-tag-${(x.partyType === 0 || x.partyType === 2) ? 'blue' : 'orange'}`}>
{x.perClassName}
</Text>
</div>
{
- x.perClass === '09_01001-1' &&
+ (x.perClass === '09_01001-1' || !x.perClass) &&
<>
<div>证件号码:{x.mobile}</div>
<div>联系方式:{x.personNumber}</div>
@@ -87,9 +91,10 @@
<div className="dataSync-addBtn">
<Tooltip
title={(<Space direction='vertical '>
- <div className="dataSync-btnApply" style={{ backgroundColor: '#1A6FB8' }} onClick={() => { handleAdd(0) }}>申请方</div>
- <div className="dataSync-btnApply" style={{ backgroundColor: '#FA8C16' }} onClick={() => { handleAdd(1) }}>被申请方</div>
- {isAgent && <div className="dataSync-btnApply" style={{ backgroundColor: '#3491FA' }} onClick={() => { handleAdd(2) }}>代理人</div>}
+ <div className="dataSync-btnApply" style={{ backgroundColor: '#1A6FB8' }} onClick={() => { handleAdd(0) }}>申请方当事人</div>
+ {isAgent && <div className="dataSync-btnApply" style={{ backgroundColor: '#3491FA' }} onClick={() => { handleAdd(2) }}>申请方代理人</div>}
+ <div className="dataSync-btnApply" style={{ backgroundColor: '#EF6C24' }} onClick={() => { handleAdd(1) }}>被申请方当事人</div>
+ {isAgentFor && <div className="dataSync-btnApply" style={{ backgroundColor: '#FA8C16' }} onClick={() => { handleAdd(3) }}>被申请方代理人</div>}
</Space>)}
placement={data.length !== 0 && data.length % 3 === 0 ? 'left' : "right"}
color='#ffff'
diff --git a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
index 0f92863..5dfe16e 100644
--- a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
@@ -14,21 +14,36 @@
export default function AgentDialog(props) {
const formRef = useRef();
+ const [visitList, setVisitList] = useState([])
+
+ useEffect(() => {
+ //过滤代理人
+ setVisitList(props.fakeData.filter(item => {
+ console.log(item,props.dialogType);
+ if (props.dialogType === 2) {
+ return item.partyType === 0
+ } else {
+ return item.partyType === 1
+ }
+ }))
+ }, [props.fakeData])
//保存信息
const handleSave = () => {
if (formRef.current) {
formRef.current.validate(undefined, (errors, values) => {
- props.handleAddParty({
- ...values,
- // partyType: props.dialogType,
- // perClass: perClass,
- // perClassName: props.dialogType === 0 ? '申请方代理人' : '被申请方当事人'
- })
- props.onClose()
+ if (!errors) {
+ props.handleAddParty({
+ ...values,
+ partyType: props.dialogType,
+ perClassName: props.dialogType === 2 ? '申请方代理人' : '被申请方代理人',
+ })
+ props.onClose()
+ }
});
}
}
+
return (
<div className="applyDialog">
<div style={{ height: '590px', overflowY: 'scroll' }}>
@@ -217,7 +232,7 @@
>
<CheckboxGroup
direction='vertical'
- options={props.fakeData.map(x => ({
+ options={visitList.map(x => ({
label: <span>{x.trueName} <span style={{ color: '#86909c' }}>({x.perClassName})</span></span>,
value: x.id,
}))}
diff --git a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
index 57e321f..181b8e7 100644
--- a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
@@ -270,13 +270,15 @@
const handleSave = () => {
if (formRef.current) {
formRef.current.validate(undefined, (errors, values) => {
- props.handleAddParty({
- ...values,
- partyType: props.dialogType,
- perClass: perClass,
- perClassName: props.dialogType === 0 ? '申请方当事人' : '被申请方当事人'
- })
- props.onClose()
+ if (!errors) {
+ props.handleAddParty({
+ ...values,
+ partyType: props.dialogType,
+ perClass: perClass,
+ perClassName: props.dialogType === 0 ? '申请方当事人' : '被申请方当事人'
+ })
+ props.onClose()
+ }
});
}
}
diff --git a/gz-customerSystem/src/views/register/visit/component/detailDialog.jsx b/gz-customerSystem/src/views/register/visit/component/detailDialog.jsx
index f58f8cc..795b2e1 100644
--- a/gz-customerSystem/src/views/register/visit/component/detailDialog.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/detailDialog.jsx
@@ -268,7 +268,7 @@
const tableList = agentList
return (
- <div>
+ <div style={{maxHeight: '590px', overflowY: 'scroll'}}>
<table border="1" align="center" cellpadding="8" className="table" style={{marginBottom: '20px'}}>
{
tableList?.map((item, index) => {
diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
index fd3929a..9391d83 100644
--- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -352,9 +352,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)
@@ -727,11 +727,14 @@
autoFocus={false}
focusLock={true}
footer={null}
+ unmountOnExit={true}
+ maskClosable={false}
>
<AgentDialog
handleAddParty={handleAddParty}
onClose={() => setAgentVisible(false)}
fakeData={fakeData}
+ dialogType={dialogType}
/>
</Modal>
<Modal
--
Gitblit v1.8.0