From db35bd251144da64188dfb8fca63a4fd8c0f5973 Mon Sep 17 00:00:00 2001
From: dminyi <1301963064@qq.com>
Date: Fri, 30 Aug 2024 17:50:07 +0800
Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh into master

---
 gz-customerSystem/src/views/register/visit/component/applyDialog.jsx     |    2 
 gz-customerSystem/src/components/personCard/DetailDialog.jsx             |  380 +++++++++++++++++++++
 gz-customerSystem/src/views/register/visit/component/agentDialog.jsx     |    8 
 gz-customerSystem/src/api/appUrl.js                                      |    5 
 gz-customerSystem/src/utils/selectOption.js                              |   28 +
 gz-customerSystem/src/utils/caseTypeSelect.js                            |   47 ++
 /dev/null                                                                |  328 ------------------
 gz-customerSystem/src/components/personCard/KeyVisits.jsx                |    0 
 gz-customerSystem/src/views/register/index.less                          |   14 
 gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx     |    8 
 gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx |   27 -
 gz-customerSystem/src/views/register/visit/preview.jsx                   |    4 
 gz-customerSystem/src/components/personCard/index.jsx                    |  191 ++++++----
 gz-customerSystem/src/views/register/visit/index.jsx                     |   28 +
 14 files changed, 615 insertions(+), 455 deletions(-)

diff --git a/gz-customerSystem/src/api/appUrl.js b/gz-customerSystem/src/api/appUrl.js
index 170b127..d07e8ae 100644
--- a/gz-customerSystem/src/api/appUrl.js
+++ b/gz-customerSystem/src/api/appUrl.js
@@ -10,11 +10,11 @@
 export const debug = {
 	// web服务
 	// baseUrl: 'http://gz.hugeinfo.com.cn',
-	baseUrl: 'http://192.168.3.108:9002',
+	baseUrl: 'http://tj4jd4.natappfree.cc',
 	// baseUrl: 'http://mdqgnh.natappfree.cc',
 
 	// 附件服务
-	fileUrl: 'http://192.168.3.108:9002',
+	fileUrl: 'http://tj4jd4.natappfree.cc',
 	// fileUrl: 'http://gz.hugeinfo.com.cn',
 
 
@@ -33,6 +33,7 @@
 	oper: 'dyh-oper', // dyh-oper
 	sys: 'dyh-sys', // dyh-sys
 	disp: 'dyh-disp', //dyh-disp
+	utils: 'dyh-utils'
 };
 
 // 正式版
diff --git a/gz-customerSystem/src/components/personCard/DetailDialog.jsx b/gz-customerSystem/src/components/personCard/DetailDialog.jsx
new file mode 100644
index 0000000..a62c172
--- /dev/null
+++ b/gz-customerSystem/src/components/personCard/DetailDialog.jsx
@@ -0,0 +1,380 @@
+import React, { useEffect, useState } from 'react'
+import KeyVisits from "./KeyVisits";
+import { link } from '@/assets/images'
+
+export default function DetailDialog(props) {
+  const nuturalList = [
+    [
+      {
+        label: '姓名',
+        perClass: '',
+        value: '',
+        isName: true,//判断是否是姓名标签
+        field: 'trueName',
+      },
+      {
+        label: '联系方式',
+        value: '',
+        field: 'mobile',
+      },
+    ],
+    [
+      {
+        label: '证件类型',
+        value: '',
+        field: 'certiTypeName',
+      },
+      {
+        label: '证件号码',
+        value: '',
+        field: 'certiNo',
+      },
+    ],
+    [
+      {
+        label: '联系地址',
+        value: '',
+        field: 'addr',
+      },
+      {
+        label: '户籍地址',
+        value: '',
+        field: 'placeAddr',
+      },
+    ],
+    [
+      {
+        label: '工作单位',
+        value: '',
+        field: 'workUnit',
+      },
+      {
+        label: '民族',
+        value: '',
+        field: 'nationName',
+      },
+    ],
+    [
+      {
+        label: '性别',
+        value: '',
+        field: 'sexName',
+      },
+      {
+        label: '是否有个人极端倾向',
+        value: '',
+        field: 'extreme',
+      },
+    ],
+    [
+      {
+        label: '身份证明材料',
+        value: <a href="your-link-here.html" target="_blank">
+          <img src={link} alt="" className="title-file" />李晓明身份证明材料.pdf
+        </a>,
+        isFile: true
+      },
+    ],
+  ]
+  const legalList = [
+    [
+      {
+        label: '企业名称',
+        perClass: '',
+        value: '',
+        isName: true,//判断是否是姓名标签
+        field: 'trueName',
+      },
+      {
+        label: '联系方式',
+        value: '',
+        field: 'mobile',
+      },
+    ],
+    [
+      {
+        label: '企业所在地',
+        value: '',
+        field: 'addr',
+      },
+      {
+        label: '统一社会信用代码',
+        value: '',
+        field: 'orgaCode',
+      },
+    ],
+    [
+      {
+        label: '法定代表人',
+        value: '',
+        field: 'deputy',
+      },
+      {
+        label: '企业类型',
+        value: '',
+        field: 'orgaTypeName',
+      },
+    ],
+    [
+      {
+        label: '住所',
+        value: '',
+        field: 'placeAddr',
+      },
+    ],
+    [
+      {
+        label: '登记企业材料',
+        value: <a href="your-link-here.html" target="_blank">
+          <img src={link} alt="" className="title-file" />广东好又多餐饮有限公司营业执照.pdf
+        </a>,
+        isFile: true
+      },
+      {
+        label: '法定代表人身份证明材料',
+        value: <a href="your-link-here.html" target="_blank">
+          <img src={link} alt="" className="title-file" />江照月个人身份.pdf
+        </a>,
+        isFile: true
+      },
+    ],
+  ]
+  const organizationList = [
+    [
+      {
+        label: '机构名称',
+        perClass: '',
+        value: '',
+        isName: true,//判断是否是姓名标签
+        field: 'trueName',
+      },
+      {
+        label: '联系方式',
+        value: '',
+        field: 'mobile',
+      },
+    ],
+    [
+      {
+        label: '机构所在地',
+        value: '',
+        field: 'addr',
+      },
+      {
+        label: '机构组织代码',
+        value: '',
+        field: 'orgaCode',
+      },
+    ],
+    [
+      {
+        label: '机构代表人',
+        value: '',
+        field: 'deputy',
+      },
+      {
+        label: '机构类型',
+        value: '',
+        field: 'orgaTypeName',
+      },
+    ],
+    [
+      {
+        label: '住所',
+        value: '',
+        field: 'placeAddr',
+      },
+    ],
+    [
+      {
+        label: '机构登记材料',
+        value: <a href="your-link-here.html" target="_blank">
+          <img src={link} alt="" className="title-file" />广东好又多餐饮有限公司营业执照.pdf
+        </a>,
+        isFile: true
+      },
+      {
+        label: '机构代表人身份证明材料',
+        value: <a href="your-link-here.html" target="_blank">
+          <img src={link} alt="" className="title-file" />江照月个人身份.pdf
+        </a>,
+        isFile: true
+      },
+    ],
+  ]
+  const agentList = [
+    [
+      {
+        label: '姓名',
+        perClass: '',
+        value: '',
+        isName: true,//判断是否是姓名标签
+        field: 'trueName',
+      },
+      {
+        label: '联系方式',
+        value: '',
+        field: 'mobile',
+      },
+    ],
+    [
+      {
+        label: '证件类型',
+        value: '',
+        field: 'certiTypeName',
+      },
+      {
+        label: '证件号码',
+        value: '',
+        field: 'certiNo',
+      },
+    ],
+    [
+      {
+        label: '联系地址',
+        value: '',
+        field: 'addr',
+      },
+      {
+        label: '户籍地址',
+        value: '',
+        field: 'placeAddr',
+      },
+    ],
+    [
+      {
+        label: '工作单位',
+        value: '',
+        field: 'workUnit',
+      },
+      {
+        label: '民族',
+        value: '',
+        field: 'nationName',
+      },
+    ],
+    [
+      {
+        label: '性别',
+        value: '',
+        field: 'sexName',
+      },
+      {
+        label: '是否有个人极端倾向',
+        value: '',
+        field: 'extreme',
+      },
+    ],
+    [
+      {
+        label: '委托关系',
+        value: '',
+        field: 'agentRelateName',
+      },
+      {
+        label: '委托类型',
+        value: '',
+        field: 'agentTypeName',
+      },
+    ],
+    [
+      {
+        label: '代理对象',
+        value: '',
+        field: 'personList',
+      },
+    ],
+    [
+      {
+        label: '身份证明材料',
+        value: <a href="your-link-here.html" target="_blank">
+          <img src={link} alt="" className="title-file" />广东好又多餐饮有限公司营业执照.pdf
+        </a>,
+        isFile: true,
+      },
+      {
+        label: '代理人授权委托书',
+        value: <a href="your-link-here.html" target="_blank">
+          <img src={link} alt="" className="title-file" />江照月个人身份.pdf
+        </a>,
+        isFile: true,
+      },
+    ],
+  ]
+
+  const [tableList, setTableList] = useState([])
+
+  useEffect(() => {
+    console.log(props.editData);
+    const data = props.editData
+    let newList
+    let mapList = []
+    if (data.perClass === "09_01001-1") {
+      //自然人
+      mapList = nuturalList
+    }
+    if (data.perClass === "09_01001-2") {
+      //法人组织
+      mapList = legalList
+    }
+    if (data.perClass === "09_01001-3") {
+      //非法人组织
+      mapList = organizationList
+    }
+    if (data.perType === "24_00006-1" || data.perType === "24_00006-1") {
+      //代理人
+      mapList = agentList
+    }
+    newList = mapList.map(item => {
+      return item.map(res => {
+        if (res.isFile) {
+          return res
+        }
+        if (res.isName) {
+          return {
+            ...res,
+            value: data[res.field],
+            perClass: data.perClassName || data.perTypeName
+          }
+        } else {
+          return {
+            ...res,
+            value: res.field === 'personList' ? data[res.field].join(',') : data[res.field]
+          }
+        }
+      })
+    })
+
+    setTableList(newList)
+  }, [])
+
+  return (
+    <div style={{ maxHeight: '590px', overflowY: 'scroll' }}>
+      <table border="1" align="center" cellpadding="8" className="table" style={{ marginBottom: '20px' }}>
+        {
+          tableList?.map((item, index) => {
+            return <tr key={index}>
+              {
+                item?.map(res => {
+                  return <>
+                    <th bgcolor="#F7F8FA" className="table-title" width='120'>{res.label}</th>
+                    <td width={380}>
+                      <div style={{ display: 'flex', minHeight: '22px' }}>
+                        <div>{res.value}</div>
+                        {res.isName && <div className="title-personRemark">{res.perClass}</div>}
+                      </div>
+                    </td>
+                  </>
+                })
+              }
+            </tr>
+          })
+        }
+      </table>
+      {/* 重复来访重点人员 */}
+      <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}>
+        <KeyVisits />
+      </div>
+    </div>
+  )
+}
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/utils/caseTypeSelect.js b/gz-customerSystem/src/utils/caseTypeSelect.js
new file mode 100644
index 0000000..7858103
--- /dev/null
+++ b/gz-customerSystem/src/utils/caseTypeSelect.js
@@ -0,0 +1,47 @@
+/*
+ * @Company: hugeInfo
+ * @Author: ldh
+ * @Date: 2022-03-07 15:26:41
+ * @LastEditTime: 2023-06-15 16:59:50
+ * @LastEditors: lihl
+ * @Version: 1.0.0
+ * @Description: 纠纷类型下拉框
+ */
+
+let caseTypeSelect = [
+  {
+    'label': '家庭邻里',
+    'value': '24_000010-1',
+    'parentId': 'root',
+    'children': [
+      {
+        'label': '邻里纠纷',
+        'value': '24_000011-1',
+        'parentId': '24_000010-1',
+      },
+      {
+        'label': '婚姻家庭纠纷',
+        'value': '24_000011-2',
+        'parentId': '24_000010-1',
+      }
+    ]
+  },
+  {
+    'label': '劳动社保',
+    'value': '24_000010-2',
+    'parentId': 'root',
+    'children': [
+      {
+        'label': '拖欠、克扣工资',
+        'value': '24_000011-3',
+        'parentId': '24_000010-2',
+      },
+      {
+        'label': '门诊及住院待遇',
+        'value': '24_000011-4',
+        'parentId': '24_000010-2',
+      }
+    ]
+  },
+  
+]
diff --git a/gz-customerSystem/src/utils/selectOption.js b/gz-customerSystem/src/utils/selectOption.js
index dc90dc7..5fb7fd1 100644
--- a/gz-customerSystem/src/utils/selectOption.js
+++ b/gz-customerSystem/src/utils/selectOption.js
@@ -516,6 +516,20 @@
     label: '不同意' 
   },
 ];
+// 企业类型
+const enterpriseType = [
+  {
+    value: '24_00008-1',
+    label: '餐饮服务',
+  },
+];
+// 机构类型
+const orgaType = [
+  {
+    value: '24_00009-1',
+    label: '志愿者服务',
+  },
+];
 //事项等级
 const caseLevelList = [
   {
@@ -782,6 +796,17 @@
   {
     value: '22_00036-10',
     label: '其他部门委托移送',
+  },
+];
+// 委托关系
+const agentRelate = [
+  {
+    value: '24_00007-1',
+    label: '亲属',
+  },
+  {
+    value: '24_00007-2',
+    label: '监护人',
   },
 ];
 
@@ -1091,6 +1116,9 @@
   meetWay,
   dispType,
   auditResult,
+  agentRelate,
+  enterpriseType,
+  orgaType,
   caseLevelList,
 
   // VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 暂时用不到,防止以后会用的,先保留 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
diff --git a/gz-customerSystem/src/views/register/index.less b/gz-customerSystem/src/views/register/index.less
index 3dfa84b..c61cf04 100644
--- a/gz-customerSystem/src/views/register/index.less
+++ b/gz-customerSystem/src/views/register/index.less
@@ -131,14 +131,14 @@
 		margin-bottom: 8px;
 		padding-left: 8px;
 	}
+}
 
-	.dialogTag {
-		line-height: 22px;
-		padding: 0 8px;
-		border-radius: 4px;
-		margin-top: 4px;
-		color: #fff;
-	}
+.dialogTag {
+	line-height: 22px;
+	padding: 0 8px;
+	border-radius: 4px;
+	margin-top: 4px;
+	color: #fff;
 }
 
 .visitTableClass {
diff --git a/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx b/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx
index 552af2f..8cbeda5 100644
--- a/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx
@@ -180,12 +180,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' }}>
@@ -303,7 +299,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 1a2c4f0..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';
@@ -275,6 +275,12 @@
                         label: <span>{x.trueName}&nbsp;&nbsp;<span style={{ color: '#86909c' }}>({x.perTypeName})</span></span>,
                         value: x.id,
                       }))}
+                      onChange={(value) => {
+                        if (value) {
+                          const personList = visitList.filter(item => value.indexOf(item.id) != -1).map(item => item.trueName)
+                          formRef.current.setFieldValue('personNameList', personList)
+                        }
+                      }}
                     >
                     </CheckboxGroup>
                   </FormItem>
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/detailDialog.jsx b/gz-customerSystem/src/views/register/visit/component/detailDialog.jsx
deleted file mode 100644
index cd9a8b9..0000000
--- a/gz-customerSystem/src/views/register/visit/component/detailDialog.jsx
+++ /dev/null
@@ -1,328 +0,0 @@
-import React, { useState } from 'react'
-import KeyVisits from "./keyVisits";
-import { link } from '@/assets/images'
-
-export default function DetailDialog(props) {
-  const nuturalList = [
-    [
-      {
-        label: '姓名',
-        perClass: '自然人',
-        width: '120',
-        value: '李晓明',
-        isName: true,//判断是否是姓名标签
-      },
-      {
-        label: '联系方式',
-        width: '120',
-        value: '13380313411',
-      },
-    ],
-    [
-      {
-        label: '证件类型',
-        value: '居民身份证',
-      },
-      {
-        label: '证件号码',
-        value: '440981199999999999',
-      },
-    ],
-    [
-      {
-        label: '联系地址',
-        value: '居民身份证',
-      },
-      {
-        label: '户籍地址',
-        value: '广州市天河区棠下街20号',
-      },
-    ],
-    [
-      {
-        label: '工作单位',
-        value: '好又多',
-      },
-      {
-        label: '民族',
-        value: '汉',
-      },
-    ],
-    [
-      {
-        label: '性别',
-        value: '男',
-      },
-      {
-        label: '是否有个人极端倾向',
-        value: '否',
-      },
-    ],
-    [
-      {
-        label: '身份证新材料',
-        value: <a href="your-link-here.html" target="_blank">
-          <img src={link} alt="" className="title-file" />李晓明身份证明材料.pdf
-        </a>,
-      },
-    ],
-  ]
-  const legalList = [
-    [
-      {
-        label: '企业名称',
-        perClass: '法人',
-        width: '120',
-        value: '李晓明',
-        isName: true,//判断是否是姓名标签
-      },
-      {
-        label: '联系方式',
-        width: '120',
-        value: '13380313411',
-      },
-    ],
-    [
-      {
-        label: '企业所在地',
-        value: '广州市天河区棠下街120号',
-      },
-      {
-        label: '统一社会信用代码',
-        value: '440981199999999999',
-      },
-    ],
-    [
-      {
-        label: '法定代表人',
-        value: '蒋照月',
-      },
-      {
-        label: '企业类型',
-        value: '餐饮服务',
-      },
-    ],
-    [
-      {
-        label: '住所',
-        value: '广州市天河区棠下街120号',
-      },
-    ],
-    [
-      {
-        label: '登记企业材料',
-        value: <a href="your-link-here.html" target="_blank">
-          <img src={link} alt="" className="title-file" />广东好又多餐饮有限公司营业执照.pdf
-        </a>,
-      },
-      {
-        label: '法定代表人身份证明材料',
-        value: <a href="your-link-here.html" target="_blank">
-          <img src={link} alt="" className="title-file" />江照月个人身份.pdf
-        </a>,
-      },
-    ],
-  ]
-  const organizationList = [
-    [
-      {
-        label: '机构名称',
-        perClass: '非法人组织',
-        width: '120',
-        value: '李晓明',
-        isName: true,//判断是否是姓名标签
-      },
-      {
-        label: '联系方式',
-        width: '120',
-        value: '13380313411',
-      },
-    ],
-    [
-      {
-        label: '机构所在地',
-        value: '广州市天河区棠下街120号',
-      },
-      {
-        label: '机构组织代码',
-        value: '440981199999999999',
-      },
-    ],
-    [
-      {
-        label: '机构代表人',
-        value: '蒋照月',
-      },
-      {
-        label: '机构类型',
-        value: '餐饮服务',
-      },
-    ],
-    [
-      {
-        label: '住所',
-        value: '广州市天河区棠下街120号',
-      },
-    ],
-    [
-      {
-        label: '机构登记材料',
-        value: <a href="your-link-here.html" target="_blank">
-          <img src={link} alt="" className="title-file" />广东好又多餐饮有限公司营业执照.pdf
-        </a>,
-      },
-      {
-        label: '机构代表人身份证明材料',
-        value: <a href="your-link-here.html" target="_blank">
-          <img src={link} alt="" className="title-file" />江照月个人身份.pdf
-        </a>,
-      },
-    ],
-  ]
-  const agentList = [
-    [
-      {
-        label: '姓名',
-        perClass: '代理人',
-        width: '120',
-        value: '李晓明',
-        isName: true,//判断是否是姓名标签
-      },
-      {
-        label: '联系方式',
-        width: '120',
-        value: '13380313411',
-      },
-    ],
-    [
-      {
-        label: '证件类型',
-        value: '居民身份证',
-      },
-      {
-        label: '证件号码',
-        value: '440981199999999999',
-      },
-    ],
-    [
-      {
-        label: '联系地址',
-        value: '居民身份证',
-      },
-      {
-        label: '户籍地址',
-        value: '广州市天河区棠下街20号',
-      },
-    ],
-    [
-      {
-        label: '工作单位',
-        value: '好又多',
-      },
-      {
-        label: '民族',
-        value: '汉',
-      },
-    ],
-    [
-      {
-        label: '性别',
-        value: '男',
-      },
-      {
-        label: '是否有个人极端倾向',
-        value: '否',
-      },
-    ],
-    [
-      {
-        label: '委托关系',
-        value: '亲属',
-      },
-      {
-        label: '委托类型',
-        value: '一般授权代理',
-      },
-    ],
-    [
-      {
-        label: '代理对象',
-        value: '广东好又多贸易公司',
-      },
-    ],
-    [
-      {
-        label: '身份证明材料',
-        value: <a href="your-link-here.html" target="_blank">
-          <img src={link} alt="" className="title-file" />广东好又多餐饮有限公司营业执照.pdf
-        </a>,
-      },
-      {
-        label: '代理人授权委托书',
-        value: <a href="your-link-here.html" target="_blank">
-          <img src={link} alt="" className="title-file" />江照月个人身份.pdf
-        </a>,
-      },
-    ],
-  ]
-  const tableList = agentList
-
-  return (
-    <div style={{maxHeight: '590px', overflowY: 'scroll'}}>
-      <table border="1" align="center" cellpadding="8" className="table" style={{marginBottom: '20px'}}>
-        {
-          tableList?.map((item, index) => {
-            return <tr key={index}>
-              {
-                item?.map(res => {
-                  return <>
-                    <th bgcolor="#F7F8FA" className="table-title" width={res.width ? res.width : ''}>{res.label}</th>
-                    <td width='380'>
-                      <div style={{ display: 'flex' }}>
-                        <div>{res.value}</div>
-                        {res.isName && <div className="title-personRemark">{res.perClass}</div>}
-                      </div>
-                    </td>
-                  </>
-                })
-              }
-            </tr>
-          })
-        }
-        {/* <tr>
-          <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th>
-          <td width='380'><div style={{ display: 'flex' }}><div>李晓明</div><div className="title-personRemark">自然人</div></div></td>
-          <th bgcolor="#F7F8FA" className="table-title" width="120">联系方式</th>
-          <td width='380'>19</td>
-          <th bgcolor="#F7F8FA" className="table-title" width='140'>性别</th>
-          <td>汉</td>
-        </tr>
-        <tr>
-          <th bgcolor="#F7F8FA" className="table-title">证件类型</th>
-          <td>19970000</td>
-          <th bgcolor="#F7F8FA" className="table-title">证件号码</th>
-          <td>团员</td>
-          <th bgcolor="#F7F8FA" className="table-title">民族</th>
-          <td>本科</td>
-        </tr>
-        <tr>
-          <th bgcolor="#F7F8FA" className="table-title">联系地址</th>
-          <td>网络工程</td>
-          <th bgcolor="#F7F8FA" className="table-title">户籍地址</th>
-          <td>淮南师范学院</td>
-          <th bgcolor="#F7F8FA" className="table-title" rowspan="2" >是否有个人极端倾向</th>
-          <td rowspan="2" >237483</td>
-        </tr>
-        <tr>
-          <th bgcolor="#F7F8FA" className="table-title">工作单位</th>
-          <td>玩,拆,装</td>
-          <th bgcolor="#F7F8FA" className="table-title">身份证明材料</th>
-        </tr> */}
-      </table>
-      {/* 重复来访重点人员 */}
-      <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}>
-        <KeyVisits />
-      </div>
-    </div>
-  )
-}
diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
index 57329ba..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,12 +297,6 @@
     }
   }
 
-  //查看
-  const handleCheckParty = (value) => {
-    setDialogType(value.perType)
-    setDetailVisabled(true)
-  }
-
   //获取当前时间
   const getFormattedDateTime = () => {
     let now = new Date();
@@ -367,8 +359,7 @@
 
 
   return (
-    <div className='dataSync-page'>
-
+    <div className='dataSync-page' style={{ ...props.style }}>
       <Col span={24} style={{ display: 'flex', alignItems: 'center' }}>
         <Space size='small'>
           <div className='MediationInfo-subTitle' style={{ marginTop: '-9px', }}></div><h4>当事人信息</h4>
@@ -378,7 +369,6 @@
         <PersonCard
           isCheck={true}
           data={fakeData}
-          handleCheckParty={handleCheckParty}
           handleAdd={handleAdd}
           handleDeleteParty={handleDeleteParty}
           handleEdit={handleEdit}
@@ -760,19 +750,6 @@
           dialogType={dialogType}
           editData={editData}
         />
-      </Modal>
-      <Modal
-        title={'查看' + peopleMap[dialogType]}
-        visible={detailVisabled}
-        onOk={() => setDetailVisabled(false)}
-        onCancel={() => setDetailVisabled(false)}
-        autoFocus={false}
-        focusLock={true}
-        footer={null}
-        unmountOnExit={true}
-        maskClosable={false}
-      >
-        <DetailDialog />
       </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 371c7df..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: '办理反馈' }
 	}
 
@@ -95,7 +96,14 @@
 			return {
 				...newObj,
 				personList: fakeData?.filter(item => item.perType === "15_020008-1" || item.perType === "15_020008-2"),
-				agentList: fakeData?.filter(item => item.perType === "24_00006-1" || item.perType === "24_00006-2"),
+				agentList: fakeData?.filter(item => item.perType === "24_00006-1" || item.perType === "24_00006-2").map(item => {
+					//personNameList用于查看详情显示代理人名字,不需要上传,去除
+					const { personNameList, ...rest } = item
+					return {
+						...rest,
+						personId: item.personId.join(',')
+					}
+				}),
 			}
 		} else {
 			const res = await getId()
@@ -103,7 +111,14 @@
 				return {
 					...newObj,
 					personList: fakeData?.filter(item => item.perType === "15_020008-1" || item.perType === "15_020008-2"),
-					agentList: fakeData?.filter(item => item.perType === "24_00006-1" || item.perType === "24_00006-2"),
+					agentList: fakeData?.filter(item => item.perType === "24_00006-1" || item.perType === "24_00006-2").map(item => {
+						//personNameList用于查看详情显示代理人名字,不需要上传,去除
+						const { personNameList, ...rest } = item
+						return {
+							...rest,
+							personId: item.personId.join(',')
+						}
+					}),
 					id: res.data
 				}
 			}
@@ -164,7 +179,8 @@
 								<Step title='结案归档' disabled />
 							</Steps>
 						</div>
-						{isReview ? <Preview /> : <VisitorRegister formRef={formRef} />}
+						<Preview style={{ display: isReview ? '' : 'none' }} />
+						<VisitorRegister formRef={formRef} style={{ display: isReview ? 'none' : '' }} />
 						<div className="dataSync-excel">
 							<Space size="large" style={{ margin: '4px 14px' }}>
 								<Button type="primary" style={{ backgroundColor: '#1A6FB8' }} onClick={handleSave} >保存</Button>
@@ -177,7 +193,7 @@
 					</Fragment>
 				}
 				{
-					current === 3 &&
+					(current === 2 || current === 3) &&
 					<Tabs defaultActiveTab='1' onChange={(v) => setTabsActive(v)}>
 						{tabsList?.map(item => {
 							return <TabPane
@@ -201,7 +217,7 @@
 										</Steps>
 									</div>
 								}
-								<MattersInfo active={tabsActive} />
+								<MattersInfo active={tabsActive} current={current}/>
 							</TabPane>
 						})}
 					</Tabs>
diff --git a/gz-customerSystem/src/views/register/visit/preview.jsx b/gz-customerSystem/src/views/register/visit/preview.jsx
index 221e93f..6b201ec 100644
--- a/gz-customerSystem/src/views/register/visit/preview.jsx
+++ b/gz-customerSystem/src/views/register/visit/preview.jsx
@@ -17,7 +17,7 @@
 import { EventLevelDrawer, MattersDetail } from './component/levelDetail'
 
 
-const Preview = () => {
+const Preview = (props) => {
     const [filesCheck, setFilesCheck] = useState(false);
     const [apply, setApply] = useState(false);
     const [visible, setVisible] = useState(false);
@@ -128,7 +128,7 @@
 
 
     return (
-        <div style={{ backgroundColor: '#ffff', margin: '8px 16px 0px 16px', padding: '12px 18px 16px 16px', height: 'calc(100vh - 211px)', overflowY: 'scroll' }}>
+        <div style={{ backgroundColor: '#ffff', margin: '8px 8px 0px 16px', padding: '12px 18px 16px 16px', height: 'calc(100vh - 228px)', overflowY: 'scroll', ...props.style }}>
             <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '8px' }}>
                 <Space size='small'>
                     <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>当事人信息</h4>

--
Gitblit v1.8.0