From ddb82fadc050833c0e5e7603d5993e000776fbcf Mon Sep 17 00:00:00 2001
From: liyj <1003249715@qq.com>
Date: Sat, 31 Aug 2024 16:34:18 +0800
Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh
---
gz-customerSystem/src/views/register/visit/component/applyDialog.jsx | 2
gz-customerSystem/src/assets/images/fold.png | 0
gz-customerSystem/src/assets/images/index.js | 6
gz-customerSystem/src/views/register/visit/component/agentDialog.jsx | 2
gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx | 77 ++
gz-customerSystem/src/api/appUrl.js | 6
gz-customerSystem/src/router/router.js | 11
gz-customerSystem/src/components/ProgressStep/VisitStep.jsx | 118 ---
gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx | 422 +++++++++++++++
gz-customerSystem/src/views/register/matterDetail/index.jsx | 306 ++++++++++
/dev/null | 202 -------
gz-customerSystem/src/assets/images/down.png | 0
gz-customerSystem/src/views/register/handleFeedback/component/FileUpLoad.jsx | 134 ++++
gz-customerSystem/src/components/WantUserTag/Handling.jsx | 10
gz-customerSystem/src/views/register/index.less | 83 ++
gz-customerSystem/src/views/register/handleFeedback/index.jsx | 96 +++
gz-customerSystem/src/views/register/eventFlow/index.jsx | 90 +++
gz-customerSystem/src/views/register/visit/index.jsx | 107 --
gz-customerSystem/src/components/WantUserTag/index.less | 8
19 files changed, 1,281 insertions(+), 399 deletions(-)
diff --git a/gz-customerSystem/src/api/appUrl.js b/gz-customerSystem/src/api/appUrl.js
index d07e8ae..7a6fde3 100644
--- a/gz-customerSystem/src/api/appUrl.js
+++ b/gz-customerSystem/src/api/appUrl.js
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: ldh
* @Date: 2022-02-16 11:25:57
- * @LastEditTime: 2024-08-29 09:50:55
+ * @LastEditTime: 2024-08-31 10:29:49
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description: api地址
@@ -10,11 +10,11 @@
export const debug = {
// web服务
// baseUrl: 'http://gz.hugeinfo.com.cn',
- baseUrl: 'http://tj4jd4.natappfree.cc',
+ baseUrl: 'http://b8bmfu.natappfree.cc',
// baseUrl: 'http://mdqgnh.natappfree.cc',
// 附件服务
- fileUrl: 'http://tj4jd4.natappfree.cc',
+ fileUrl: 'http://b8bmfu.natappfree.cc',
// fileUrl: 'http://gz.hugeinfo.com.cn',
diff --git a/gz-customerSystem/src/assets/images/down.png b/gz-customerSystem/src/assets/images/down.png
new file mode 100644
index 0000000..e8c9143
--- /dev/null
+++ b/gz-customerSystem/src/assets/images/down.png
Binary files differ
diff --git a/gz-customerSystem/src/assets/images/fold.png b/gz-customerSystem/src/assets/images/fold.png
new file mode 100644
index 0000000..3ec8012
--- /dev/null
+++ b/gz-customerSystem/src/assets/images/fold.png
Binary files differ
diff --git a/gz-customerSystem/src/assets/images/index.js b/gz-customerSystem/src/assets/images/index.js
index f0249c0..af2d092 100644
--- a/gz-customerSystem/src/assets/images/index.js
+++ b/gz-customerSystem/src/assets/images/index.js
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: lwh
* @Date: 2023-04-24 16:12:00
- * @LastEditTime: 2024-08-28 10:47:07
+ * @LastEditTime: 2024-08-30 10:47:30
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description:
@@ -49,6 +49,8 @@
import transfer from "./transfer.png";
import empty from "./empty.png";
import feedback from "./feedback.png";
+import fold from "./fold.png";
+import down from "./down.png"
export {
ledger_1,
@@ -93,4 +95,6 @@
transfer,
empty,
feedback,
+ fold,
+ down
};
diff --git a/gz-customerSystem/src/components/ProgressStep/VisitStep.jsx b/gz-customerSystem/src/components/ProgressStep/VisitStep.jsx
index eb4460a..7af8187 100644
--- a/gz-customerSystem/src/components/ProgressStep/VisitStep.jsx
+++ b/gz-customerSystem/src/components/ProgressStep/VisitStep.jsx
@@ -16,37 +16,20 @@
import FilesDrawer from '../FilesDrawer';
import './index.less';
-// 获取调度处理进度数据
-function getDispProgressDataApi(caseId) {
- return $$.ax.request({ url: 'caseTask/transferRecord?caseId=' + caseId, type: 'get', service: 'mediate' });
-}
-
-// 获取调解处理进度数据
-function getProgressDataApi(caseId) {
- return $$.ax.request({ url: 'caseTask/transferRecord?caseId=' + caseId, type: 'get', service: 'mediate' });
-}
-// 获取司法确认处理进度数据
-function getJudicProgressDataApi(caseId) {
- return $$.ax.request({ url: 'judicTask/getTaskProcess?caseId=' + caseId, type: 'get', service: 'mediate' });
-}
-
/**
- * caseId:'', // 案件id
- * pageFrom:'', // 判断那个页面展示
+ * progressData:'', // 流程数据
*/
-const ProgressStep = ({ caseId, pageFrom }) => {
- const [data, setData] = useState([]);
-
- // 提交调解 案件调度 案件签收 纠纷调解 指派网格员
+const ProgressStep = ({ progressData }) => {
+ const iconMap = {
+ 1: ledger_8,
+ 2: ledger_7,
+ }
// 已处理列表第一个元素
const dom1 = (x) => (
<div>
<div className="myStep-item-p">
<span>{x.handlerUserName || '-'}</span>
- {/* <span className={`public-nameCard-tag public-nameCard-tag-grey`}>
- {x.canalName || '-'}
- </span> */}
</div>
<div className="myStep-item-p" style={{ color: 'rgba(0,0,0,0.50)' }}>
<span>操作人:</span>
@@ -64,17 +47,19 @@
<div className="myStep-item-p">
<span>{x.handlerUserName || '-'}</span>
</div>
- <div className="myStep-item-p" style={{ color: 'rgba(0,0,0,0.50)' }}>
- <span>操作人:</span>
- <span>{x.operationName}</span>
- </div>
+ {x.operationName &&
+ <div className="myStep-item-p" style={{ color: 'rgba(0,0,0,0.50)' }}>
+ <span>操作人:</span>
+ <span>{x.operationName}</span>
+ </div>
+ }
<div className="myStep-item-p" style={{ color: 'rgba(0,0,0,0.50)' }}>
<span>操作时间:</span>
<span>{$$.timeFormat(x.finishTime)}</span>
</div>
{
x.handleContent &&
- <div className='myStep-item-p-yy' style={{width:'200px'}}>
+ <div className='myStep-item-p-yy' style={{ width: '200px' }}>
<span className='myStep-item-p-yy-l'>
{x.handleResult == '2' ?
<span>退回<Tooltip placement="top" title={x.handleContent || ''}><span>{`(${x.handleContent})` || '-'}</span></Tooltip></span>
@@ -101,7 +86,7 @@
const dom3 = (x) => (
<div>
<div className="myStep-item-p">
- <span style={{ color: 'rgba(0,0,0,0.50)' }}>办理中</span>
+ <span style={{ color: 'rgba(0,0,0,0.50)' }}>待受理</span>
</div>
<div className="myStep-item-p">
<span>{x.handlerUserName}</span>
@@ -109,92 +94,29 @@
</div>
);
- const fakeData = [
- {
- handlerUserName: '天河区棠下街综治中心',
- canalName: '来访登记',
- finishTime: new Date().getTime() - 24 * 60 * 60 * 1000, // 一天前的时间
- handleResult: '1',
- status: '2',
- taskNodeName: '来访登记',
- mediResult: '22_00025-1',
- handleContent: '调解成功,双方达成一致意见。',
- operationName: '李晓明'
- },
- {
- handlerUserName: '天河区棠下街综治中心',
- canalName: '事件流转',
- finishTime: new Date().getTime() - 12 * 60 * 60 * 1000, // 半天前的时间
- handleResult: '1',
- status: '2',
- taskNodeName: '案件调度',
- mediResult: '22_00025-1',
- handleContent: '自行受理',
- operationName: '李晓明'
-
- },
- {
- handlerUserName: '天河区棠下街综治中心',
- canalName: '办理反馈',
- finishTime: new Date().getTime() - 6 * 60 * 60 * 1000, // 6小时前的时间
- handleResult: '2',
- status: '3',
- taskNodeName: '案件签收',
- mediResult: '22_00025-1',
- handleContent: '案件已被签收,准备开始调解。',
- operationName: '李晓明'
-
- },
- ];
-
- useEffect(() => {
- if (pageFrom === 'dispatchRecord') {
- setData(fakeData || [])
- }
- }, [pageFrom]);
-
- function splitByLine(str, len = 10) {
- let strLen = str.length,
- num = 0,
- multiple = Math.floor(strLen / len),
- arrStr = str.split(''),
- space = strLen % len > 0 ? multiple + 1 : multiple
- for (let i = 1; i <= space; i++) {
- arrStr.splice((len * i + num), 0, '\n')
- num++
- }
- return arrStr.join('')
- }
-
-
return (
<>
- {data.length !== 0
- ? data.map((x, t) => {
+ {progressData.length !== 0
+ ? progressData.map((x, t) => {
return (
<div key={t + 1}>
<div className="myStep-item">
- {t === data.length - 1 ? null : <div className={`${!x.handleContent ? 'myStep-item-divider' : x.fileInfoList?.length > 0 ? 'myStep-item-divider2' : "myStep-item-divider1"} ${x.status === '2' && 'myStep-item-divider-success'}`} />}
+ {t === progressData.length - 1 ? null : <div className={`${!x.handleContent ? 'myStep-item-divider' : x.fileInfoList?.length > 0 ? 'myStep-item-divider2' : "myStep-item-divider1"} ${x.status === '2' && 'myStep-item-divider-success'}`} />}
<div className={`myStep-item-icon1 myStep-item-${x.status === '2' ? 'success1' : 'noStarted1'}`}>
- <div className="myStep-item-title">{splitByLine(x.taskNodeName || '', 2)}</div>
- <img className='myStep-item-img' src={x.status === '1' ? ledger_8 : (x.handleResult === '2' ? feedback : ledger_7)} alt="" />
- {/* <Icon className='myStep-item-img' component={x.handleResult === '2' ? RollbackOutlined : CheckOutlined} /> */}
+ <div className="myStep-item-title">{x.taskNodeName}</div>
+ <img className='myStep-item-img' src={iconMap[x.status]} alt="" />
</div>
<div className="myStep-item-right">
- {/* {dom1(x || {})} */}
{
t === 0 && dom1(x || {})
}
{
t !== 0 && <>
{
- x.status === '2' ? dom2(x || {}) : dom3(x || {})
+ x.status === '1' ? dom3(x || {}) : dom2(x || {})
}
</>
}
- {/* <div className="myStep-item-title">{x.taskNodeName}</div> */}
- {/* {
- <StepContent x={x || {}} t={t || 0} />} */}
</div>
</div>
</div>
diff --git a/gz-customerSystem/src/components/WantUserTag/Handling.jsx b/gz-customerSystem/src/components/WantUserTag/Handling.jsx
index 6aeb09b..49352d3 100644
--- a/gz-customerSystem/src/components/WantUserTag/Handling.jsx
+++ b/gz-customerSystem/src/components/WantUserTag/Handling.jsx
@@ -2,7 +2,7 @@
* @Author: dminyi 1301963064@qq.com
* @Date: 2024-08-29 20:43:25
* @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-08-29 20:55:24
+ * @LastEditTime: 2024-08-30 10:27:25
* @FilePath: \gzDyh\gz-customerSystem\src\components\WantUserTag\Handling.jsx
* @Description: 经办人
*/
@@ -16,10 +16,10 @@
return (
<div className="wantUserTag">
<div className="wantUserTag-wantHandleUser">
- <div className="wantUserTag-wantUser-right">{name}</div>
- <Typography.Link className="wantUserTag-wantHandleUser-close" onClick={() => onClose(value)}>
- <CloseOutlined style={{width:'11px',height:'13px'}}/>
- </Typography.Link>
+ <div className="wantUserTag-wantHandleUser-right">{name}</div>
+ <div onClick={() => onClose(value)} className="wantUserTag-wantHandleUser-icon">
+ <CloseOutlined />
+ </div>
</div>
</div>
);
diff --git a/gz-customerSystem/src/components/WantUserTag/index.less b/gz-customerSystem/src/components/WantUserTag/index.less
index b394f4c..a53f77e 100644
--- a/gz-customerSystem/src/components/WantUserTag/index.less
+++ b/gz-customerSystem/src/components/WantUserTag/index.less
@@ -34,8 +34,16 @@
display:flex;
padding: 5px 8px;
border: 1px solid rgba(229,230,235,1);
+ align-items: center;
+ border-radius: 2px;
+ &-right {
+ margin-left: 8px;
+ }
+ &-icon{
+ color: #1D2129;
+ }
}
&-green {
diff --git a/gz-customerSystem/src/router/router.js b/gz-customerSystem/src/router/router.js
index 8ea6b0c..5dd82ce 100644
--- a/gz-customerSystem/src/router/router.js
+++ b/gz-customerSystem/src/router/router.js
@@ -135,9 +135,11 @@
import DataSearch from "../views/statistic/dataSearch";
//来访登记
-import Visit from "../views/register/visit"
-//自行排查
-import Check from "../views/register/visit/check"
+import Visit from "../views/register/visit";
+//事件流转
+import EventFlow from "../views/register/eventFlow";
+//办理反馈
+import HandleFeedback from "../views/register/handleFeedback";
import Test from "../views/test";
@@ -211,7 +213,8 @@
<Route path="judicialOverview" element={<JudicialOverview />} />
{/* 来访登记*/}
<Route path="visit" element={<Visit />} />
- <Route path="visit/check" element={<Check />} />
+ <Route path="visit/eventFlow" element={<EventFlow />} />
+ <Route path="visit/handleFeedback" element={<HandleFeedback />} />
{/* 工作流模块 */}
<Route path="workflowTemplate" element={<WorkflowTemplate />} />
<Route path="workflowTemplate/workflowTemplateEdit" element={<WorkflowTemplateEdit />} />
diff --git a/gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx b/gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx
new file mode 100644
index 0000000..091e29d
--- /dev/null
+++ b/gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx
@@ -0,0 +1,77 @@
+import React from 'react';
+import { Button } from '@arco-design/web-react';
+import { Space } from 'antd';
+import ProgressStep from '@/components/ProgressStep/VisitStep';
+
+const fakeData = [
+ {
+ handlerUserName: '天河区棠下街综治中心',
+ finishTime: new Date().getTime() - 24 * 60 * 60 * 1000, // 一天前的时间
+ handleResult: '1',
+ status: '2',
+ taskNodeName: '来访登记',
+ mediResult: '22_00025-1',
+ handleContent: '调解成功,双方达成一致意见。',
+ operationName: '李晓明'
+ },
+ {
+ handlerUserName: '系统派单',
+ finishTime: new Date().getTime() - 12 * 60 * 60 * 1000, // 半天前的时间
+ handleResult: '1',
+ status: '2',
+ taskNodeName: '事件流转',
+ mediResult: '22_00025-1',
+ handleContent: '派单至:白云区新市街市场监管所',
+ },
+ {
+ handlerUserName: '白云区新市街市场监管所',
+ finishTime: new Date().getTime() - 11 * 60 * 60 * 1000, // 半天前的时间
+ handleResult: '1',
+ status: '2',
+ taskNodeName: '事件流转',
+ mediResult: '22_00025-1',
+ handleContent: '已签收',
+ operationName: '赵菲菲'
+ },
+ {
+ handlerUserName: '白云区新市街市场监管所',
+ finishTime: new Date().getTime() - 11 * 60 * 60 * 1000, // 半天前的时间
+ handleResult: '1',
+ status: '3',
+ taskNodeName: '事件回退',
+ mediResult: '22_00025-1',
+ // handleContent: '已签收',
+ operationName: '赵菲菲'
+ },
+ {
+ handlerUserName: '天河区棠下街综治中心',
+ finishTime: new Date().getTime() - 6 * 60 * 60 * 1000, // 6小时前的时间
+ handleResult: '2',
+ status: '1',
+ taskNodeName: '事件流转',
+ mediResult: '22_00025-1',
+ handleContent: '案件已被签收,准备开始调解。',
+ operationName: '李晓明'
+ },
+];
+
+export default function EventFlow(props) {
+ const tabs = [
+ { index: '1', label: '承办部门' },
+ { index: '2', label: '配合部门' },
+ ];
+ return (
+ <div className='dataSync'>
+ <div className='dataSync-hasTabPage' >
+ <ProgressStep progressData={fakeData} />
+ </div>
+ <div className="dataSync-excel">
+ <Space size="large" style={{ margin: '4px 14px' }}>
+ <Button type="primary" >受理</Button>
+ <Button type='outline' status='danger'>回退</Button>
+ <Button type='secondary' >返回上级页面</Button>
+ </Space>
+ </div>
+ </div>
+ )
+}
diff --git a/gz-customerSystem/src/views/register/eventFlow/index.jsx b/gz-customerSystem/src/views/register/eventFlow/index.jsx
new file mode 100644
index 0000000..17dd752
--- /dev/null
+++ b/gz-customerSystem/src/views/register/eventFlow/index.jsx
@@ -0,0 +1,90 @@
+/*
+ * @Author: dminyi 1301963064@qq.com
+ * @Date: 2024-08-09 09:59:43
+ * @LastEditors: dminyi 1301963064@qq.com
+ * @LastEditTime: 2024-08-28 14:38:20
+ * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
+ * @Description: 来访登记
+ */
+
+import React, { useState, useRef, Fragment } from "react";
+import NewPage from '@/components/NewPage';
+import * as $$ from '@/utils/utility';
+import "@arco-themes/react-gzzz/css/arco.css";
+import '../index.less';
+import { Button, Steps, Tabs, Message } from '@arco-design/web-react';
+import { question, register, Matter, transfer } from '@/assets/images'
+import EventFlow from './component/EventFlow';
+import MatterDetali from '../matterDetail';
+
+const Step = Steps.Step;
+const TabPane = Tabs.TabPane;
+
+
+const Organization = () => {
+ const [current, setCurrent] = useState(2);
+ const [tabsActive, setTabsActive] = useState('1');
+ const [tabsList, setTabList] = useState([
+ {
+ img: Matter,
+ label: '事项详情',
+ key: '1'
+ },
+ {
+ img: transfer,
+ label: '流转办理',
+ key: '2',
+ isNeedStep: true,//加上这个就有进度条
+ },
+ ])
+
+
+ return (
+ <div style={{ position: 'relative' }}>
+ <NewPage
+ pageHead={
+ { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' }
+ }
+ >
+ <Tabs
+ defaultActiveTab='1'
+ onChange={(v) => setTabsActive(v)}
+ className='myTabContent'
+ >
+ {tabsList?.map(item => {
+ return <TabPane
+ key={item.key}
+ title={
+ <span>
+ {tabsActive === item.key && <img src={item.img} alt="" style={{ width: '16px', height: '16px', margin: '-5px 12px 0px 0px' }} />}
+ <span style={{ fontSize: '16px' }}>{item.label}</span>
+ </span>
+ }
+ >
+ {
+ item.isNeedStep && <div style={{ backgroundColor: '#fff', margin: '12px 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}>
+ <Steps type='navigation' current={current}>
+ <Step title='来访登记' disabled />
+ <Step title='事件流转' disabled />
+ <Step title='办理反馈' disabled />
+ <Step title='结案审核' disabled />
+ <Step title='当事人评价' disabled />
+ <Step title='结案归档' disabled />
+ </Steps>
+ </div>
+ }
+ {tabsActive === '1' &&
+ <MatterDetali />
+ }
+ {
+ (tabsActive === '2' && current === 2) && <EventFlow />
+ }
+ </TabPane>
+ })}
+ </Tabs>
+ </NewPage>
+ </div>
+ )
+}
+
+export default Organization;
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/handleFeedback/component/FileUpLoad.jsx b/gz-customerSystem/src/views/register/handleFeedback/component/FileUpLoad.jsx
new file mode 100644
index 0000000..f136c12
--- /dev/null
+++ b/gz-customerSystem/src/views/register/handleFeedback/component/FileUpLoad.jsx
@@ -0,0 +1,134 @@
+import React, { useState, useEffect } from 'react';
+import { Typography, Button } from 'antd';
+import { CheckOutlined, } from '@ant-design/icons';
+import { Form, Input, Modal,Upload } from '@arco-design/web-react';
+import { IconLink } from '@arco-design/web-react/icon';
+
+
+const { TextArea } = Input;
+const { Text } = Typography;
+
+const DocumentScanner = ({
+ visible,
+ onCancel,
+ onConfirm,
+ formRef,
+}) => {
+ const [scanImage, setScanImage] = useState(false);
+ const [scaned, setScaned] = useState(false);
+ const [fileView, setFileView] = useState(null);
+
+ useEffect(() => {
+ if (!visible) {
+ setScanImage(false);
+ setScaned(false);
+ setFileView(null);
+ }
+ }, [visible]);
+
+ const handleUploadChange = (info) => {
+ if (info.fileList.length > 0) {
+ setScanImage(true);
+ }
+ setFileView({
+ ...info.fileList[0],
+ url: URL.createObjectURL(info.fileList[0].originFile),
+ });
+ };
+
+ const handleStartRecognition = () => {
+ setScaned(true);
+ setScanImage(false);
+ };
+
+ const handleUseText = (text) => {
+ onConfirm(text);
+ onCancel(); // 关闭弹窗
+ };
+
+ return (
+ <>
+ <Modal
+ style={{ width: '1200px' }}
+ visible={visible && !scanImage && !scaned}
+ onCancel={onCancel}
+ title='识别上传材料'
+ centered
+ footer={null}
+ >
+ <Form
+ ref={formRef}
+ layout='vertical'
+ requiredSymbol={false}
+ style={{ marginTop: '4px' }}
+ >
+ <Form.Item label='选择图片' name='file'>
+ <Upload
+ drag
+ limit={1}
+ accept='image/*'
+ onDrop={() => {}}
+ tip='支持png、jpg、pdf等格式文件上传,每次上传大小不超过10M'
+ showUploadList={{
+ fileIcon: <IconLink style={{ color: '#1D2129' }} />,
+ }}
+ onChange={handleUploadChange}
+ >
+ <Text>点击或者拖拽文件到这里</Text>
+ </Upload>
+ </Form.Item>
+ </Form>
+ </Modal>
+ <Modal
+ style={{ width: '944px' }}
+ visible={visible && scanImage}
+ onCancel={() => setScanImage(false)}
+ footer={null}
+ title='选择识别范围'
+ centered
+ >
+ <img
+ src={fileView?.url}
+ alt=""
+ style={{
+ display: 'block',
+ margin: 'auto',
+ maxWidth: '100%',
+ maxHeight: '100%',
+ objectFit: 'contain',
+ }}
+ />
+ <div style={{ marginTop: '20px' }}>
+ <Button type="primary" onClick={handleStartRecognition}>
+ 开始识别
+ </Button>
+ </div>
+ </Modal>
+ <Modal
+ style={{ width: '1200px' }}
+ visible={visible && scaned}
+ onCancel={() => setScaned(false)}
+ footer={null}
+ title='识别上传材料'
+ centered
+ >
+ <div style={{ marginTop: '20px', marginBottom: '8px' }}>识别内容</div>
+ <TextArea
+ showWordLimit
+ rows={5}
+ placeholder=''
+ wrapperStyle={{ width: '100%' }}
+ defaultValue='识别内容'
+ onChange={(e) => handleUseText(e.target.value)}
+ />
+ <div style={{ marginTop: '24px' }}>
+ <Button type="primary" onClick={() => handleUseText('识别内容')}>
+ 使用文字
+ </Button>
+ </div>
+ </Modal>
+ </>
+ );
+};
+
+export default DocumentScanner;
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx b/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
new file mode 100644
index 0000000..4b4fbcc
--- /dev/null
+++ b/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
@@ -0,0 +1,422 @@
+import React, { useState, useRef, useEffect } from 'react';
+import { Col, Space, Row, Tooltip, Button } from 'antd';
+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 { scan } from '@/assets/images/icon'
+import DocumentScanner from './FileUpLoad'
+import * as $$ from '@/utils/utility';
+
+
+const InputSearch = Input.Search;
+const FormItem = Form.Item;
+const TabPane = Tabs.TabPane;
+
+const style = {
+ textAlign: 'center',
+ marginTop: 20,
+};
+
+const fakeData = [
+ {
+ handlerUserName: '天河区棠下街综治中心',
+ finishTime: new Date().getTime() - 24 * 60 * 60 * 1000, // 一天前的时间
+ handleResult: '1',
+ status: '2',
+ taskNodeName: '来访登记',
+ mediResult: '22_00025-1',
+ handleContent: '调解成功,双方达成一致意见。',
+ operationName: '李晓明'
+ },
+ {
+ handlerUserName: '系统派单',
+ finishTime: new Date().getTime() - 12 * 60 * 60 * 1000, // 半天前的时间
+ handleResult: '1',
+ status: '2',
+ taskNodeName: '事件流转',
+ mediResult: '22_00025-1',
+ handleContent: '派单至:白云区新市街市场监管所',
+ },
+ {
+ handlerUserName: '白云区新市街市场监管所',
+ finishTime: new Date().getTime() - 11 * 60 * 60 * 1000, // 半天前的时间
+ handleResult: '1',
+ status: '2',
+ taskNodeName: '事件流转',
+ mediResult: '22_00025-1',
+ handleContent: '已签收',
+ operationName: '赵菲菲'
+ },
+ {
+ handlerUserName: '白云区新市街市场监管所',
+ finishTime: new Date().getTime() - 11 * 60 * 60 * 1000, // 半天前的时间
+ handleResult: '1',
+ status: '3',
+ taskNodeName: '事件回退',
+ mediResult: '22_00025-1',
+ // handleContent: '已签收',
+ operationName: '赵菲菲'
+ },
+ {
+ handlerUserName: '天河区棠下街综治中心',
+ finishTime: new Date().getTime() - 6 * 60 * 60 * 1000, // 6小时前的时间
+ handleResult: '2',
+ status: '1',
+ taskNodeName: '事件流转',
+ mediResult: '22_00025-1',
+ handleContent: '案件已被签收,准备开始调解。',
+ operationName: '李晓明'
+ },
+];
+
+
+
+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 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 (
+ <>
+ <div className='container'>
+ <div className='container-top'>
+ <Col span={24}>
+ <Space size='small'>
+ <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>当事人信息</h5>
+ </Space>
+ </Col>
+ <Row gutter={[16, 16]}>
+ <Col span={8} style={{ display: 'flex' }}>
+ <div><div className="title-text">承办部门:</div></div>
+ <div>天河区棠下街综治中心</div>
+ </Col>
+ <Col span={8} style={{ display: 'flex' }}>
+ <div><div className="title-text">经办人:</div></div>
+ <div style={{ display: 'flex' }}>
+ <div>王一顺</div>
+ <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
+ </div>
+ </Col>
+ <Col span={8} style={{ display: 'flex' }}>
+ <div><div className="title-text">配合部门:</div></div>
+ <div>-</div>
+ </Col>
+ <Col span={8} style={{ display: 'flex' }}>
+ <div><div className="title-text">受理时间:</div></div>
+ <div>2024-7-5 11:45</div>
+ </Col>
+ </Row>
+
+ </div>
+
+ <div className='container-bottom'>
+ <div className='container-bottom-left'>
+ <Col span={24} style={{ marginBottom: '8px' }}>
+ <Space size='small'>
+ <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>办理反馈</h5>
+ </Space>
+ </Col>
+ <Form
+ layout='vertical'
+ requiredSymbol={false}
+ scrollToFirstError={true}
+ >
+ <Col span={8}>
+ <FormItem label={<div style={{ display: 'flex' }}>
+ <span style={{ color: '#86909C' }}>经办人</span>
+ <Tooltip>
+ <img src={question1} alt="" style={{ width: '13px', height: '13px', margin: '4px 4px 0px 4px' }} />
+ </Tooltip>
+ </div>
+ }
+ field='level' >
+ {wantUser.wantUserId ?
+ <WantUserTag name={wantUser.wantUserName} onClose={() => setWantUser({ wantUserId: null, wantUserName: null })} />
+ :
+ <InputSearch
+ searchButton='选择'
+ placeholder='请选择'
+ style={{ width: 350 }}
+ onClick={() => setIsModalVisible(true)}
+ onSearch={() => setIsModalVisible(true)}
+ />
+ }
+ </FormItem>
+ </Col>
+ <Col span={24}>
+ <div style={{ color: 'rgb(134, 144, 156)' }}>办理记录</div>
+ {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 }]}
+ >
+ <Input.TextArea
+ maxLength={2000}
+ showWordLimit
+ rows={5}
+ placeholder='请完整描述事项概况,应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过'
+ wrapperStyle={{ width: '100%' }}
+ />
+ </FormItem>
+ </Col>
+
+ </div>
+ </Col>
+ </Form>
+ <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>
+ <Button type='secondary'>返回上级页面</Button>
+ </Space>
+ </div>
+ <div className='container-bottom-right'>
+ <Tabs defaultActiveTab='1' className='tabs-container' >
+ <TabPane
+ key='1'
+ title={
+ <span style={{ fontSize: '15px' }}>
+ 流转进度
+ </span>
+ }
+ >
+ <Typography.Paragraph>
+ <div style={{ display: 'flex', marginLeft: '16px', gap: '16px' }}>
+ {tabs.map((tab) => (
+ <div
+ key={tab.index}
+ style={{
+ color: selectedTab === tab.index ? 'rgba(26,111,184,1)' : 'rgba(0,0,0,0.45)',
+ padding: '6px 12px',
+ border: `1px solid ${selectedTab === tab.index ? 'rgba(26,111,184,1)' : 'rgba(229,230,235,1)'}`,
+ borderRadius: '4px',
+ cursor: 'pointer',
+ }}
+ onClick={() => handleTabChange(tab.index)}
+ >
+ {tab.label}
+ </div>
+ ))}
+ </div>
+ {selectedTab === '1' &&
+ <div className='progress'>
+ <ProgressStep progressData={fakeData} />
+ </div>
+ }
+ </Typography.Paragraph>
+ </TabPane>
+ <TabPane
+ key='2'
+ title={
+ <span style={{ fontSize: '15px' }}>
+ 督办信息
+ </span>
+ }
+ >
+ <Typography.Paragraph style={style}>Content of Tab Panel 2</Typography.Paragraph>
+ </TabPane>
+ </Tabs>
+
+ </div>
+ </div>
+
+ {/* 选择经办人*/}
+ <SelectObjModal
+ visible={isModalVisible}
+ checkKeys={wantUser.wantUserId ? [{ label: wantUser.wantUserName, value: wantUser.wantUserId }] : undefined}
+ onOk={(value) => {
+ setIsModalVisible(false);
+ setWantUser({ wantUserId: value.keys[0], wantUserName: value.items[0].name });
+ }}
+ onClose={() => setIsModalVisible(false)}
+ />
+
+ <DocumentScanner
+ visible={scannerVisible}
+ onCancel={onCancel}
+ onConfirm={handleConfirm}
+ formRef={formRef}
+ />
+ </div >
+ </>
+ )
+
+}
+
+export default Handle;
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/handleFeedback/index.jsx b/gz-customerSystem/src/views/register/handleFeedback/index.jsx
new file mode 100644
index 0000000..f07cc7f
--- /dev/null
+++ b/gz-customerSystem/src/views/register/handleFeedback/index.jsx
@@ -0,0 +1,96 @@
+/*
+ * @Author: dminyi 1301963064@qq.com
+ * @Date: 2024-08-09 09:59:43
+ * @LastEditors: dminyi 1301963064@qq.com
+ * @LastEditTime: 2024-08-28 14:38:20
+ * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
+ * @Description: 来访登记
+ */
+
+import React, { useState, useRef, Fragment } from "react";
+import NewPage from '@/components/NewPage';
+import * as $$ from '@/utils/utility';
+import "@arco-themes/react-gzzz/css/arco.css";
+import '../index.less';
+import { Typography, Steps, Tabs, Message } from '@arco-design/web-react';
+import { question, register, Matter, transfer } from '@/assets/images'
+import MatterDetali from '../matterDetail';
+import Handle from './component/handle';
+
+const Step = Steps.Step;
+const TabPane = Tabs.TabPane;
+const style = {
+ // textAlign: 'center',
+ // marginTop: 20,
+};
+
+
+const Organization = () => {
+ const [current, setCurrent] = useState(3);
+ const [tabsActive, setTabsActive] = useState('1');
+ const [tabsList, setTabList] = useState([
+ {
+ img: Matter,
+ label: '事项详情',
+ key: '1'
+ },
+ {
+ img: transfer,
+ label: '流转办理',
+ key: '2',
+ isNeedStep: true,//加上这个就有进度条
+ },
+ ])
+
+
+ return (
+ <div style={{ position: 'relative' }}>
+ <NewPage
+ pageHead={
+ { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' }
+ }
+ >
+ <Tabs
+ defaultActiveTab='1'
+ onChange={(v) => setTabsActive(v)}
+ className='myTabContent'
+ >
+ {tabsList?.map(item => {
+ return <TabPane
+ key={item.key}
+ title={
+ <span>
+ {tabsActive === item.key && <img src={item.img} alt="" style={{ width: '16px', height: '16px', margin: '-5px 12px 0px 0px' }} />}
+ <span style={{ fontSize: '16px' }}>{item.label}</span>
+ </span>
+ }
+ >
+ {
+ item.isNeedStep && <div style={{ backgroundColor: '#fff', margin: '12px 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}>
+ <Steps type='navigation' current={current}>
+ <Step title='来访登记' disabled />
+ <Step title='事件流转' disabled />
+ <Step title='办理反馈' disabled />
+ <Step title='结案审核' disabled />
+ <Step title='当事人评价' disabled />
+ <Step title='结案归档' disabled />
+ </Steps>
+ </div>
+ }
+ {tabsActive === '1' &&
+ <MatterDetali />
+ }
+ {
+ tabsActive === '2' && <Typography.Paragraph style={style}>
+ <Handle />
+ </Typography.Paragraph>
+ }
+ </TabPane>
+ })}
+ </Tabs>
+ </NewPage>
+ </div>
+ )
+}
+
+export default Organization;
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/index.less b/gz-customerSystem/src/views/register/index.less
index e065fc8..f1e6dff 100644
--- a/gz-customerSystem/src/views/register/index.less
+++ b/gz-customerSystem/src/views/register/index.less
@@ -91,6 +91,7 @@
}
.dataSync {
+ position: relative;
&-page {
background-color: #fff;
margin: 8px 8px 0px 16px;
@@ -123,6 +124,14 @@
justify-content: space-between;
box-shadow: 0px -1px 2px 0px rgba(0, 0, 0, 0.25);
z-index: 1;
+ }
+
+ &-hasTabPage {
+ background-color: #fff;
+ margin: 8px 8px 0px 16px;
+ padding: 12px 16px 64px 16px;
+ height: calc(100vh - 288px);
+ overflow-y: scroll;
}
}
@@ -282,15 +291,64 @@
display: flex;
flex-direction: row;
column-gap: 8px;
- /* margin: 8px 16px 22px; */
margin: 0px 8px 22px 16px;
- // height: 100vh;
&-left {
flex: 3 1 0%;
background-color: rgb(255, 255, 255);
padding: 12px 0px 12px 16px;
+ margin-bottom: -25px;
+
+ &-record {
+ border: 1px solid #D9D9D9;
+ border-radius: 8px;
+ margin-right: 16px;
+ margin-top: 8px;
+
+ &-top {
+ padding: 12px;
+ display: flex;
+ align-items: center;
+ background-color: #FAFAFA;
+ border-radius: 8px;
+
+
+ &-icon {
+ width: 12px;
+ height: 12px;
+ margin-right: 12px;
+ }
+
+ &-remark {
+ border: 1px solid #FFD591;
+ padding: 0px 8px;
+ color: #FA8C16;
+ background-color: #FFF7E6;
+ border-radius: 4px;
+ margin-left: 8px;
+ }
+
+ &-hostOrg{
+ border: 1px solid #89C2E3;
+ padding: 0px 8px;
+ color: #1A6FB8;
+ background-color: #E8F8FF;
+ border-radius: 4px;
+ margin-left: 8px;
+
+ }
+ }
+
+ &-bottom {
+ margin: 16px 12px;
+
+ &-table {
+ border: 1px solid #d9d9d9;
+ width: 100%;
+ }
+ }
+ }
}
&-right {
@@ -298,6 +356,13 @@
background-color: rgb(255, 255, 255);
}
}
+}
+
+.Form{
+ padding: 12px 16px 16px 16px;
+ border: 1px dashed #1a6fb8;
+ border-radius: 10px;
+ margin-top: 16px;
}
.tabs-container .arco-tabs-header {
@@ -317,6 +382,18 @@
width: 82px;
}
-.progress{
+.progress {
margin: 16px 0px 0px 16px;
+}
+
+.myTabContent {
+ .arco-tabs-header-nav {
+ margin-left: 16px
+ }
+ .arco-tabs-header-nav-line.arco-tabs-header-nav-horizontal>.arco-tabs-header-scroll .arco-tabs-header-title:first-of-type {
+ margin-left: 0;
+ }
+ .arco-tabs-header-nav-line .arco-tabs-header-title {
+ margin: 0 16px 0 0;
+ }
}
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/matterDetail/index.jsx b/gz-customerSystem/src/views/register/matterDetail/index.jsx
new file mode 100644
index 0000000..7c124e6
--- /dev/null
+++ b/gz-customerSystem/src/views/register/matterDetail/index.jsx
@@ -0,0 +1,306 @@
+import React, { useState, useEffect } from 'react';
+import { Row, Col, Space, Button, Switch } from 'antd';
+import PersonCard from '@/components/personCard';
+import TableView from '@/components/TableView';
+import * as $$ from '@/utils/utility';
+import { Typography, Steps } from '@arco-design/web-react';
+import { question, register, Matter, transfer } from '@/assets/images'
+
+function getCaseInfoApi(id) {
+ return $$.ax.request({ url: 'caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' });
+}
+
+
+export default function MatterDetali() {
+ const [fakeData, setFakeData] = useState([{
+ "trueName": "王大锤",
+ "mobile": "13380313412",
+ "certiType": "09_00015-1",
+ "certiTypeName": "身份证",
+ "certiNo": "440981199902025123",
+ "perType": "15_020008-1",
+ "perClass": "09_01001-1",
+ "perTypeName": "申请方当事人",
+ "perClassName": "自然人",
+ "id": "24083010053310002"
+ }, {
+ "trueName": "刘俊峰",
+ "mobile": "13380313412",
+ "certiType": "09_00015-1",
+ "certiTypeName": "身份证",
+ "certiNo": "440981199902023234",
+ "perType": "15_020008-2",
+ "perClass": "09_01001-1",
+ "perTypeName": "被申请方当事人",
+ "perClassName": "自然人",
+ "id": "24083010054710003"
+ }]);//当事人信息数据
+ const [upload, setUpLoad] = useState(false);
+ const [filesCheck, setFilesCheck] = useState(false);
+ const [infoData, setInfoData] = useState({});
+
+ const fakeColumns = [
+ {
+ title: '序号',
+ dataIndex: 'caseNo',
+ key: 'caseNo',
+ width: 100,
+ render: (text, record, index) => <span>{index + 1}</span>,
+ },
+ {
+ title: '材料类型',
+ dataIndex: 'judicNo',
+ key: 'judicNo',
+ width: 60,
+
+ },
+ {
+ title: '材料数量',
+ dataIndex: 'inputUserName',
+ key: 'perClassName',
+ width: 180,
+ render: (text) => (
+ <>
+ {text}份
+ </>
+ )
+
+
+ },
+ {
+ title: '材料名称',
+ dataIndex: 'perClassName',
+ key: 'perClassName',
+ width: 180,
+
+ },
+ {
+ title: '最新上传时间',
+ dataIndex: 'mediateUserName',
+ key: 'mediateUserName',
+ width: 180,
+
+ },
+ {
+ title: '操作',
+ dataIndex: 'perClassName',
+ key: 'perClassName',
+ width: 200,
+ render: (text) => (
+ <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}>
+ <div onClick={() => setFilesCheck(true)}>查看</div>
+ <div>删除</div>
+ <div>下载</div>
+ <div onClick={() => setUpLoad(true)}>上传</div>
+ </div>
+ )
+ },
+ // 更多列配置...
+ ];
+ const fakeData1 = [
+ {
+ id: 1,
+ caseNo: 'A20230101',
+ judicNo: '申请材料',
+ perClassName: '李晓明的纠纷化解申请表、身份证...',
+ inputUserName: '0',
+ mediateUserName: '2024-7-12 12:00',
+ judgeName: '王五',
+ mediator: '赵六',
+ handlerUserName: '钱七',
+ returnUserName: '孙八',
+ expireTime: '2023-08-10T08:00:00.000Z',
+ processName: '进行中',
+ otherMediator: '周九',
+ canalName: '网络',
+ judicResult: '通过',
+ assistName: '吴十',
+ mediTypeName: '民事调解',
+ serieStatus: '1', // 1 表示非系列案,2 表示系列案
+ // 更多字段...
+ },
+ {
+ id: 2,
+ caseNo: 'A20230101',
+ judicNo: '证据材料',
+ perClassName: '李晓明的纠纷化解申请表、身份证...',
+ inputUserName: '0',
+ mediateUserName: '2024-7-12 12:00',
+ judgeName: '王五',
+ mediator: '赵六',
+ handlerUserName: '钱七',
+ returnUserName: '孙八',
+ expireTime: '2023-08-10T08:00:00.000Z',
+ processName: '进行中',
+ otherMediator: '周九',
+ canalName: '网络',
+ judicResult: '通过',
+ assistName: '吴十',
+ mediTypeName: '民事调解',
+ serieStatus: '1', // 1 表示非系列案,2 表示系列案
+ // 更多字段...
+ },
+
+ // 更多数据...
+ ];
+
+
+ //获取id
+ const getCaseInfo = async () => {
+ const res = await getCaseInfoApi('24083010062110001')
+ if (res.type) {
+ let data = res.data
+ setInfoData([...fakeData1, {
+ ...data,
+ // status:
+ // data.status === '1' ? '待签收' :
+ // data.status === '2' ? '待受理' :
+ // data.status === '3' ? '办理中' :
+ // data.status === '4' ? '结案审核' :
+ // data.status === '5' ? '待评价' :
+ // data.status === '6' ? '已归档' : '未知状态'
+ }])
+
+ setInfoData(res.data)
+ }
+ }
+
+ useEffect(() => {
+ getCaseInfo()
+ }, [])
+
+ return (
+ <div style={{ position: 'relative' }}>
+ <Typography.Paragraph>
+ <div className='dataSync-page'>
+
+ <Col span={24} style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
+ <Space size='small'>
+ <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>当事人信息</h5>
+ </Space>
+ <div>
+ <Switch checkedChildren="当事人小程序可见" unCheckedChildren="当事人小程序不可见" defaultChecked />
+ </div>
+ </Col>
+ <div style={{ margin: '16px 0' }}>
+ <PersonCard
+ isCheck={false}
+ data={fakeData}
+ />
+ </div>
+ <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '4px' }}>
+ <Space size='small'>
+ <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>纠纷基本情况</h5>
+ </Space>
+ </Col>
+ <Row gutter={[16, 16]}>
+ <Col span={8}>
+ <div><div className="title-text">事项状态</div></div>
+ <div style={{ color: '#1A6FB8' }}>{infoData.statusName || '-'}</div>
+ </Col>
+ <Col span={16}>
+ <div><div className="title-text">事项编号</div></div>
+ <div>{infoData.caseId || '-'}</div>
+ </Col>
+ {/*事项等级分为三级,颜色需要做判断*/}
+ <Col span={8}>
+ <div className="title"><div className="title-text">事项等级</div></div>
+ <div style={{ display: 'flex' }}><div style={{ backgroundColor: '#00B42A', marginRight: '4px', borderRadius: '4px' }}><div style={{ color: '#FFFFFF', padding: '0px 6px' }}>{infoData.caseLevel || '-'}</div></div>级</div>
+ </Col>
+ <Col span={8}>
+ <div><div className="title-text">来访时间</div></div>
+ <div>{infoData.visitTime || '-'}</div>
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">来访人数(人)</div></div>
+ <div>{infoData.visitPeopleNum || '-'}</div>
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">纠纷类型</div></div>
+ <div>{infoData.caseTypeFirstName}/{infoData.caseTypeName}</div>
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">纠纷发生时间</div></div>
+ <div>{infoData.occurTime}</div>
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">纠纷发生地点</div></div>
+ <div>广州市天河区中山七路康王柏德来商业城</div>
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">问题属地</div></div>
+ {/* <div>{queProvName}/{queCityName}/{queAreaName}/{queRoadName}</div> */}
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">涉及人数(人)</div></div>
+ <div>2</div>
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">涉及金额(元)</div></div>
+ <div>{$$.thousands(20000)}</div>
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">事项来源</div></div>
+ <div>大厅来访</div>
+ </Col>
+ <Col span={16}>
+ <div ><div className="title-text">来访形式</div></div>
+ <div>来访</div>
+ </Col>
+ <Col span={24}>
+ <div className="title"><div className="title-text">事项概况</div></div>
+ <div>张先生与李先生是多年的朋友关系。2023年4月,李先生因生意周转需要向张先生借款人民币20万元,并口头承诺于一年内还清。出于信任,张先生未要求签订书面借条或借款合同。然而,到了2024年4月,李先生并未如约归还借款。张先生多次通过电话、微信等方式催促还款,但李先生先是拖延,后干脆以各种理由拒绝偿还,甚至声称该笔款项属于赠予而非借款,这使得张先生感到十分无奈。 </div>
+ </Col>
+ <Col span={24}>
+ <div className="title"><div className="title-text">事项申请</div></div>
+ <div>张先生与李先生是多年的朋友关系。2023年4月,李先生因生意周转需要向张先生借款人民币20万元,并口头承诺于一年内还清。出于信任,张先生未要求签订书面借条或借款合同。然而,到了2024年4月,李先生并未如约归还借款。张先生多次通过电话、微信等方式催促还款,但李先生先是拖延,后干脆以各种理由拒绝偿还,甚至声称该笔款项属于赠予而非借款,这使得张先生感到十分无奈。 </div>
+ </Col>
+ <Col span={16}>
+ <div className="title"><div className="title-text">是否重大矛盾纠纷</div></div>
+ <div>否</div>
+ </Col>
+ </Row>
+ <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '8px', marginTop: '20px' }}>
+ <Space size='small'>
+ <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>事件材料</h5>
+ </Space>
+ </Col>
+
+ <TableView
+ columns={fakeColumns}
+ dataSource={fakeData1}
+ size="small"
+ rowKey="id"
+ bordered={true}
+ style={{ marginBottom: '20px' }}
+ />
+ <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '4px' }}>
+ <Space size='small'>
+ <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>登记信息</h5>
+ </Space>
+ </Col>
+ <Row gutter={[16, 16]}>
+ {/*事项等级分为三级,颜色需要做判断*/}
+ <Col span={8}>
+ <div className="title"><div className="title-text">登记机构</div><img src={question} alt="" style={{ width: '14px', height: '14px', marginTop: '4px', marginLeft: '4px' }} /></div>
+ <div>天河区棠下街道综治中心</div>
+ </Col>
+ <Col span={8}>
+ <div><div className="title-text">登记人</div></div>
+ <div style={{ display: 'flex' }}>
+ <div>李晓明</div>
+ <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
+ </div>
+ </Col>
+ <Col span={8}>
+ <div ><div className="title-text">登记时间</div></div>
+ <div>2024-7-8 10:00</div>
+ </Col>
+ </Row>
+ <Button type='primary' style={{ marginTop: '20px' }}>修改</Button>
+ </div>
+
+ </Typography.Paragraph>
+ </div>
+ )
+}
diff --git a/gz-customerSystem/src/views/register/visit/check.jsx b/gz-customerSystem/src/views/register/visit/check.jsx
deleted file mode 100644
index f34d6f8..0000000
--- a/gz-customerSystem/src/views/register/visit/check.jsx
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * @Author: dminyi 1301963064@qq.com
- * @Date: 2024-08-27 10:39:24
- * @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-08-27 10:39:57
- * @FilePath: \gzDyh\gz-customerSystem\src\views\register\visit\check.jsx
- * @Description: 自行排查
- */
-import React, { useState, useEffect, useRef, Fragment } from "react";
-import NewPage from '@/components/NewPage';
-import RegisterTab from '@/components/registerTab';
-import * as $$ from '@/utils/utility';
-import "@arco-themes/react-gzzz/css/arco.css";
-import '../index.less';
-import { Space } from 'antd';
-import { Button, Steps } from '@arco-design/web-react';
-import VisitorRegister from './component/visitorRegister';
-import Preview from './preview';
-
-const Step = Steps.Step;
-
-function getCaseDataApi(submitData) {
- return $$.ax.request({ url: `caseInfo/getCaseInfo?id=${submitData}`, type: 'get', service: 'mediate' });
-}
-
-
-
-const Check = () => {
- const formRef = useRef();
-
- const [isReview, setIsReview] = useState(false);//预览页面控制
- const [current, setCurrent] = useState(1);
- const [tabsActive, setTabsActive] = useState('1');
-
- const tabs = [
- { label: '事件登记', key: '1' },
- { label: '事件流转', key: '2' },
- { label: '办理反馈', key: '3' },
- { label: '申请结案', key: '4' },
- { label: '当事人评价', key: '5' },
- { label: '结案归档', key: '6', img1: true },
-
- ];
-
- //提交信息,需要校验规则
- const handleSubmit = async () => {
- if (formRef.current) {
- formRef.current.validate(undefined, (errors, values) => {
- console.log(errors, values);
- });
- }
- }
-
- //保存草稿信息,不需要校验规则
- const handleSave = async () => {
- if (formRef.current) {
- const data = formRef.current.getFields()
- console.log(data);
- }
- }
-
- //预览信息
- const handleReview = () => {
- setIsReview(!isReview)
- }
-
- function selfAcceptance() {
- $$.modalInfo({
- title: '自行受理确认',
- content: '确定自行受理本次登记事项吗?自行受理成功后事项将直接进入到本单位办理流程',
- okText: '确定受理',
- cancelText: '我再想想',
- onOk: async () => {
- console.log('1111111')
- },
- });
-
- }
-
- function submit() {
- $$.info({ type: 'warning', content: '您没有预约记录,暂时无法提交' })
- }
- console.log(current, 'current')
-
-
- return (
- <div style={{ position: 'relative' }}>
- <NewPage
- pageHead={
- { breadcrumbData: [{ title: '工作台' }, { title: '来访登记' }], title: '来访登记' }
- }
- >
- {/*onChange={(activeKey) => setTabsActive(activeKey)}*/}
- <RegisterTab tabs={tabs} activeKey={tabsActive} style={{ background: '#fff' }} />
- {/* <div style={{backgroundColor: '#fff',margin:'12px 16px 0px 16px',paddingTop:'16px',paddingLeft:'91px'}}>
- <Steps type='navigation' current={current} onChange={setCurrent} style={{ }}>
- <Step title='来访登记' style={{ color: '#1A6FB8' }} disabled/>
- <Step title='事件流转' disabled/>
- <Step title='办理反馈' disabled/>
- <Step title='结案审核' disabled/>
- <Step title='当事人评价' disabled/>
- <Step title='结案归档' disabled/>
- </Steps>
-
- </div> */}
- {current === 1 &&
- <Fragment>
- {isReview ? <Preview /> : <VisitorRegister formRef={formRef} />}
- <div className="dataSync-excel">
- <Space size="large" style={{ margin: '4px 14px' }}>
- <Button type="primary" style={{ backgroundColor: '#1A6FB8' }} onClick={handleSave} >保存</Button>
- <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleReview}>预览</Button>
- <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleSubmit}>提交</Button>
- <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={() => selfAcceptance()}>自行受理</Button>
- <Button type='secondary' onClick={handleReview}>返回上级页面</Button>
- </Space>
- </div>
- </Fragment>
- }
- {/* {preview && <Preview />} */}
- </NewPage>
-
- </div>
- )
-}
-
-export default Check;
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx b/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx
deleted file mode 100644
index 418a908..0000000
--- a/gz-customerSystem/src/views/register/visit/component/MattersInfo.jsx
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * @Author: dminyi 1301963064@qq.com
- * @Date: 2024-08-27 11:31:01
- * @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-08-28 14:41:24
- * @FilePath: \gzDyh\gz-customerSystem\src\views\register\visit\component\MattersInfo.jsx
- * @Description: 事项详情
- */
-
-import React, { useState } from 'react';
-import PersonCard from '@/components/personCard'
-import { Row, Col, Space, Button, Switch } from 'antd';
-import TableView from '@/components/TableView'
-import { question, register, Matter, transfer } from '../../../../assets/images'
-import * as $$ from '@/utils/utility';
-import { Tabs, Typography, Steps } from '@arco-design/web-react';
-import "@arco-themes/react-gzzz/css/arco.css";
-import { IconCalendar, IconClockCircle, IconUser } from '@arco-design/web-react/icon';
-import Handle from './handle'
-const TabPane = Tabs.TabPane;
-
-const style = {
- // textAlign: 'center',
- // marginTop: 20,
-};
-
-const MattersInfo = (props) => {
-
- const [fakeData, setFakeData] = useState([]);//当事人信息数据
- const [agentVisible, setAgentVisible] = useState(false);
- const [dialogType, setDialogType] = useState(0);//添加当事人的类型
- const [detailVisabled, setDetailVisabled] = useState(false);//查看信息弹窗控制
- const [addVisabled, setAddVisabled] = useState(false);//添加当事人弹窗控制
- const [upload, setUpLoad] = useState(false);
- const [filesCheck, setFilesCheck] = useState(false);
- const Step = Steps.Step;
-
-
- const fakeColumns = [
- {
- title: '序号',
- dataIndex: 'caseNo',
- key: 'caseNo',
- width: 100,
- render: (text, record, index) => <span>{index + 1}</span>,
- },
- {
- title: '材料类型',
- dataIndex: 'judicNo',
- key: 'judicNo',
- width: 60,
-
- },
- {
- title: '材料数量',
- dataIndex: 'inputUserName',
- key: 'perClassName',
- width: 180,
- render: (text) => (
- <>
- {text}份
- </>
- )
-
-
- },
- {
- title: '材料名称',
- dataIndex: 'perClassName',
- key: 'perClassName',
- width: 180,
-
- },
- {
- title: '最新上传时间',
- dataIndex: 'mediateUserName',
- key: 'mediateUserName',
- width: 180,
-
- },
- {
- title: '操作',
- dataIndex: 'perClassName',
- key: 'perClassName',
- width: 200,
- render: (text) => (
- <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}>
- <div onClick={() => setFilesCheck(true)}>查看</div>
- <div>删除</div>
- <div>下载</div>
- <div onClick={() => setUpLoad(true)}>上传</div>
- </div>
- )
- },
- // 更多列配置...
- ];
- const fakeData1 = [
- {
- id: 1,
- caseNo: 'A20230101',
- judicNo: '申请材料',
- perClassName: '李晓明的纠纷化解申请表、身份证...',
- inputUserName: '0',
- mediateUserName: '2024-7-12 12:00',
- judgeName: '王五',
- mediator: '赵六',
- handlerUserName: '钱七',
- returnUserName: '孙八',
- expireTime: '2023-08-10T08:00:00.000Z',
- processName: '进行中',
- otherMediator: '周九',
- canalName: '网络',
- judicResult: '通过',
- assistName: '吴十',
- mediTypeName: '民事调解',
- serieStatus: '1', // 1 表示非系列案,2 表示系列案
- // 更多字段...
- },
- {
- id: 2,
- caseNo: 'A20230101',
- judicNo: '证据材料',
- perClassName: '李晓明的纠纷化解申请表、身份证...',
- inputUserName: '0',
- mediateUserName: '2024-7-12 12:00',
- judgeName: '王五',
- mediator: '赵六',
- handlerUserName: '钱七',
- returnUserName: '孙八',
- expireTime: '2023-08-10T08:00:00.000Z',
- processName: '进行中',
- otherMediator: '周九',
- canalName: '网络',
- judicResult: '通过',
- assistName: '吴十',
- mediTypeName: '民事调解',
- serieStatus: '1', // 1 表示非系列案,2 表示系列案
- // 更多字段...
- },
-
- // 更多数据...
- ];
-
-
- //查看
- const handleCheckParty = (value) => {
- console.log(value);
- setDialogType(value.partyType)
- setDetailVisabled(true)
- }
-
- //添加申请人: 0、被申请人: 1、申请代理人: 2、被申请代理人:3
- const handleAdd = (type) => {
- if (type === 2 || type === 3) {
- setAgentVisible(true)
- } else {
- setAddVisabled(true)
- }
- setDialogType(type)
- }
-
- //删除当事人
- const handleDeleteParty = (event, value) => {
- event.stopPropagation();
- const filterData = fakeData.filter(item => item.id !== value.id)
- setFakeData(filterData)
- }
-
- return (
- <div style={{ position: 'relative' }}>
- {props.active === '1' &&
- <Typography.Paragraph style={style}>
- <div className='dataSync-page'>
-
- <Col span={24} style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
- <Space size='small'>
- <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>当事人信息</h5>
- </Space>
- <div>
- <Switch checkedChildren="当事人小程序可见" unCheckedChildren="当事人小程序不可见" defaultChecked />
- </div>
- </Col>
- <div style={{ margin: '16px 0' }}>
- <PersonCard
- isCheck={false}
- data={fakeData}
- />
- </div>
- <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '4px' }}>
- <Space size='small'>
- <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>纠纷基本情况</h5>
- </Space>
- </Col>
- <Row gutter={[16, 16]}>
- <Col span={8}>
- <div><div className="title-text">事项状态</div></div>
- <div style={{ color: '#1A6FB8' }}>待办理</div>
- </Col>
- <Col span={16}>
- <div><div className="title-text">事项编号</div></div>
- <div>GZ202408010001</div>
- </Col>
- {/*事项等级分为三级,颜色需要做判断*/}
- <Col span={8}>
- <div className="title"><div className="title-text">事项等级</div></div>
- <div style={{ display: 'flex' }}><div style={{ backgroundColor: '#00B42A', marginRight: '4px', borderRadius: '4px' }}><div style={{ color: '#FFFFFF', padding: '0px 6px' }}>3</div></div>级</div>
- </Col>
- <Col span={8}>
- <div><div className="title-text">来访时间</div></div>
- <div>2024-7-12 10:00</div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">来访人数(人)</div></div>
- <div>2</div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">纠纷类型</div></div>
- <div>市场监管/金融纠纷</div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">纠纷发生时间</div></div>
- <div>2024-7-11</div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">纠纷发生地点</div></div>
- <div>广州市天河区中山七路康王柏德来商业城</div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">问题属地</div></div>
- <div>广州市/天河区/棠下街道</div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">涉及人数(人)</div></div>
- <div>2</div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">涉及金额(元)</div></div>
- <div>{$$.thousands(20000)}</div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">事项来源</div></div>
- <div>大厅来访</div>
- </Col>
- <Col span={16}>
- <div ><div className="title-text">来访形式</div></div>
- <div>来访</div>
- </Col>
- <Col span={24}>
- <div className="title"><div className="title-text">事项概况</div></div>
- <div>张先生与李先生是多年的朋友关系。2023年4月,李先生因生意周转需要向张先生借款人民币20万元,并口头承诺于一年内还清。出于信任,张先生未要求签订书面借条或借款合同。然而,到了2024年4月,李先生并未如约归还借款。张先生多次通过电话、微信等方式催促还款,但李先生先是拖延,后干脆以各种理由拒绝偿还,甚至声称该笔款项属于赠予而非借款,这使得张先生感到十分无奈。 </div>
- </Col>
- <Col span={24}>
- <div className="title"><div className="title-text">事项申请</div></div>
- <div>张先生与李先生是多年的朋友关系。2023年4月,李先生因生意周转需要向张先生借款人民币20万元,并口头承诺于一年内还清。出于信任,张先生未要求签订书面借条或借款合同。然而,到了2024年4月,李先生并未如约归还借款。张先生多次通过电话、微信等方式催促还款,但李先生先是拖延,后干脆以各种理由拒绝偿还,甚至声称该笔款项属于赠予而非借款,这使得张先生感到十分无奈。 </div>
- </Col>
- <Col span={16}>
- <div className="title"><div className="title-text">是否重大矛盾纠纷</div></div>
- <div>否</div>
- </Col>
- </Row>
- <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '8px', marginTop: '20px' }}>
- <Space size='small'>
- <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>事件材料</h5>
- </Space>
- </Col>
-
- <TableView
- columns={fakeColumns}
- dataSource={fakeData1}
- size="small"
- rowKey="id"
- bordered={true}
- style={{ marginBottom: '20px' }}
- />
- <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '4px' }}>
- <Space size='small'>
- <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>登记信息</h5>
- </Space>
- </Col>
- <Row gutter={[16, 16]}>
- {/*事项等级分为三级,颜色需要做判断*/}
- <Col span={8}>
- <div className="title"><div className="title-text">登记机构</div><img src={question} alt="" style={{ width: '14px', height: '14px', marginTop: '4px', marginLeft: '4px' }} /></div>
- <div>天河区棠下街道综治中心</div>
- </Col>
- <Col span={8}>
- <div><div className="title-text">登记人</div></div>
- <div style={{ display: 'flex' }}>
- <div>李晓明</div>
- <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
- </div>
- </Col>
- <Col span={8}>
- <div ><div className="title-text">登记时间</div></div>
- <div>2024-7-8 10:00</div>
- </Col>
- </Row>
- <Button type='primary' style={{ marginTop: '20px' }}>修改</Button>
- </div>
-
- </Typography.Paragraph>
- }
- {
- (props.active === '3' && props.current === 3) && <Typography.Paragraph style={style}>
- <Handle />
- </Typography.Paragraph>
- }
- </div>
- )
-}
-
-export default MattersInfo;
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
index f9f8031..b63946c 100644
--- a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
@@ -241,7 +241,7 @@
<Select
placeholder='请选择'
allowClear
- options={$$.options.agentType}
+ options={$$.options.agentRelate}
onChange={(value, options) => {
formRef.current.setFieldValue('agentRelateName', options && options.children)
}}
diff --git a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
index 2fb2b3e..757f2ef 100644
--- a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
@@ -281,7 +281,7 @@
<Select
placeholder='请选择'
allowClear
- options={$$.options.agentType}
+ options={isLegal ? $$.options.enterpriseType : $$.options.orgaType}
onChange={(value, options) => {
formRef.current.setFieldValue('orgaTypeName', options && options.children)
}}
diff --git a/gz-customerSystem/src/views/register/visit/component/handle.jsx b/gz-customerSystem/src/views/register/visit/component/handle.jsx
deleted file mode 100644
index 620a5fc..0000000
--- a/gz-customerSystem/src/views/register/visit/component/handle.jsx
+++ /dev/null
@@ -1,202 +0,0 @@
-import React, { useState } from 'react';
-import { Steps } from '@arco-design/web-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 { question1, } from '@/assets/images';
-import ProgressStep from '../../../../components/ProgressStep/VisitStep'
-import SelectObjModal from '../../../../components/SelectObjModal/selectPerson'
-import WantUserTag from '../../../../components/WantUserTag/Handling'
-
-const InputSearch = Input.Search;
-const FormItem = Form.Item;
-const TabPane = Tabs.TabPane;
-
-const style = {
- textAlign: 'center',
- marginTop: 20,
-};
-
-
-
-const Handle = () => {
- const [selectedTab, setSelectedTab] = useState('1'); // 默认选中第一个 tab
- const [wantUser, setWantUser] = useState({});
- const tabs = [
- { index: '1', label: '承办部门' },
- { index: '2', label: '配合部门' },
- ];
-
- const [isModalVisible, setIsModalVisible] = useState(false);
-
- const showModal = () => {
- setIsModalVisible(true);
- };
-
- const hideModal = () => {
- setIsModalVisible(false);
- };
-
- const handleTabChange = (newTabIndex) => {
- setSelectedTab(newTabIndex);
- };
-
- return (
- <>
- <div className='container'>
- <div className='container-top'>
- <Col span={24}>
- <Space size='small'>
- <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>当事人信息</h5>
- </Space>
- </Col>
- <Row gutter={[16, 16]}>
- <Col span={8} style={{ display: 'flex' }}>
- <div><div className="title-text">承办部门:</div></div>
- <div>天河区棠下街综治中心</div>
- </Col>
- <Col span={8} style={{ display: 'flex' }}>
- <div><div className="title-text">经办人:</div></div>
- <div style={{ display: 'flex' }}>
- <div>王一顺</div>
- <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
- </div>
- </Col>
- <Col span={8} style={{ display: 'flex' }}>
- <div><div className="title-text">配合部门:</div></div>
- <div>-</div>
- </Col>
- <Col span={8} style={{ display: 'flex' }}>
- <div><div className="title-text">受理时间:</div></div>
- <div>2024-7-5 11:45</div>
- </Col>
- </Row>
-
- </div>
-
- <div className='container-bottom'>
- <div className='container-bottom-left'>
- <Col span={24} style={{ marginBottom: '8px' }}>
- <Space size='small'>
- <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>办理反馈</h5>
- </Space>
- </Col>
- <Form
- layout='vertical'
- requiredSymbol={false}
- scrollToFirstError={true}
- >
- <Col span={8}>
- <FormItem label={<div style={{ display: 'flex' }}>
- <span style={{ color: '#86909C' }}>经办人</span>
- <Tooltip>
- <img src={question1} alt="" style={{ width: '13px', height: '13px', margin: '4px 4px 0px 4px' }} />
- </Tooltip>
- </div>
- }
- field='level' >
- {wantUser.wantUserId ?
- <WantUserTag name={wantUser.wantUserName} onClose={() => setWantUser({ wantUserId: null, wantUserName: null })} />
- :
- <InputSearch
- searchButton='选择'
- placeholder='请选择'
- style={{ width: 350 }}
- onClick={() => setIsModalVisible(true)}
- onSearch={() => setIsModalVisible(true)}
- />
- }
- </FormItem>
- </Col>
- <Col span={24}>
- <div style={{ color: 'rgb(134, 144, 156)' }}>办理记录</div>
- <Empty
- icon={
- <div
- style={{
- display: 'flex',
- // width: 160,
- justifyContent: 'center',
- }}
- >
- <img src={empty} alt='' style={{ width: '160px', height: '160px' }} />
- </div>
- }
- description='暂无数据'
- />
- </Col>
- </Form>
- <Space>
- <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>
- <Button type='secondary'>返回上级页面</Button>
- </Space>
- </div>
- <div className='container-bottom-right'>
- <Tabs defaultActiveTab='1' className='tabs-container' >
- <TabPane
- key='1'
- title={
- <span style={{ fontSize: '15px' }}>
- 流转进度
- </span>
- }
- >
- <Typography.Paragraph>
- <div style={{ display: 'flex', marginLeft: '16px', gap: '16px' }}>
- {tabs.map((tab) => (
- <div
- key={tab.index}
- style={{
- color: selectedTab === tab.index ? 'rgba(26,111,184,1)' : 'rgba(0,0,0,0.45)',
- padding: '6px 12px',
- border: `1px solid ${selectedTab === tab.index ? 'rgba(26,111,184,1)' : 'rgba(229,230,235,1)'}`,
- borderRadius: '4px',
- cursor: 'pointer',
- }}
- onClick={() => handleTabChange(tab.index)}
- >
- {tab.label}
- </div>
- ))}
- </div>
- {selectedTab === '1' &&
- <div className='progress'>
- <ProgressStep caseId='202408291012566613' pageFrom="dispatchRecord" />
- </div>
- }
- </Typography.Paragraph>
- </TabPane>
- <TabPane
- key='2'
- title={
- <span style={{ fontSize: '15px' }}>
- 督办信息
- </span>
- }
- >
- <Typography.Paragraph style={style}>Content of Tab Panel 2</Typography.Paragraph>
- </TabPane>
- </Tabs>
-
- </div>
- </div>
-
- {/* 选择经办人*/}
- <SelectObjModal
- visible={isModalVisible}
- checkKeys={wantUser.wantUserId ? [{ label: wantUser.wantUserName, value: wantUser.wantUserId }] : undefined}
- onOk={(value) => {
- setIsModalVisible(false);
- setWantUser({ wantUserId: value.keys[0], wantUserName: value.items[0].name });
- }}
- onClose={() => setIsModalVisible(false)}
- />
- </div>
- </>
- )
-
-}
-
-export default Handle;
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/visit/index.jsx b/gz-customerSystem/src/views/register/visit/index.jsx
index 8a3be63..2372777 100644
--- a/gz-customerSystem/src/views/register/visit/index.jsx
+++ b/gz-customerSystem/src/views/register/visit/index.jsx
@@ -13,14 +13,11 @@
import "@arco-themes/react-gzzz/css/arco.css";
import '../index.less';
import { Space } from 'antd';
-import { Button, Steps, Tabs, Message } from '@arco-design/web-react';
+import { Button, Steps, Message } from '@arco-design/web-react';
import VisitorRegister from './component/visitorRegister';
import Preview from './preview';
-import MattersInfo from './component/MattersInfo';
-import { question, register, Matter, transfer } from '@/assets/images'
const Step = Steps.Step;
-const TabPane = Tabs.TabPane;
function saveDispute(data) {
return $$.ax.request({ url: `casedraftInfo/caseDraftRegister`, type: 'post', service: 'mediate', data });
@@ -39,26 +36,7 @@
const formRef = useRef();
const [isReview, setIsReview] = useState(false);//预览页面控制
- const [current, setCurrent] = useState(2);
- const [tabsActive, setTabsActive] = useState('1');
- const [tabsList, setTabList] = useState([
- {
- img: Matter,
- label: '事项详情',
- key: '1'
- },
- {
- img: transfer,
- label: '流转办理',
- key: '3',
- isNeedStep: true,//加上这个就有进度条
- },
- ])
- const breadcrumbDataMap = {
- 1: { breadcrumbData: [{ title: '工作台' }, { title: '来访登记' }], title: '来访登记' },
- 2: { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' },
- 3: { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' }
- }
+ const [current, setCurrent] = useState(1);
//提交信息,需要校验规则
const handleSubmit = async () => {
@@ -163,65 +141,32 @@
<div style={{ position: 'relative' }}>
<NewPage
pageHead={
- breadcrumbDataMap[current]
+ { breadcrumbData: [{ title: '工作台' }, { title: '来访登记' }], title: '来访登记' }
}
>
- {
- current === 1 &&
- <Fragment>
- <div style={{ backgroundColor: '#fff', margin: '12px 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}>
- <Steps type='navigation' current={current}>
- <Step title='来访登记' disabled />
- <Step title='事件流转' disabled />
- <Step title='办理反馈' disabled />
- <Step title='结案审核' disabled />
- <Step title='当事人评价' disabled />
- <Step title='结案归档' disabled />
- </Steps>
- </div>
- <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>
- <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleReview}>预览</Button>
- <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleSubmit}>提交</Button>
- <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={() => selfAcceptance()}>自行受理</Button>
- <Button type='secondary' onClick={handleReview}>返回上级页面</Button>
- </Space>
- </div>
- </Fragment>
- }
- {
- (current === 2 || current === 3) &&
- <Tabs defaultActiveTab='1' onChange={(v) => setTabsActive(v)}>
- {tabsList?.map(item => {
- return <TabPane
- key={item.key}
- title={
- <span>
- {tabsActive === item.key && <img src={item.img} alt="" style={{ width: '16px', height: '16px', margin: '-5px 12px 0px 0px' }} />}
- <span style={{ fontSize: '16px' }}>{item.label}</span>
- </span>
- }
- >
- {
- item.isNeedStep && <div style={{ backgroundColor: '#fff', margin: '12px 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}>
- <Steps type='navigation' current={current}>
- <Step title='来访登记' disabled />
- <Step title='事件流转' disabled />
- <Step title='办理反馈' disabled />
- <Step title='结案审核' disabled />
- <Step title='当事人评价' disabled />
- <Step title='结案归档' disabled />
- </Steps>
- </div>
- }
- <MattersInfo active={tabsActive} current={current}/>
- </TabPane>
- })}
- </Tabs>
- }
+ <Fragment>
+ <div style={{ backgroundColor: '#fff', margin: '12px 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}>
+ <Steps type='navigation' current={current}>
+ <Step title='来访登记' disabled />
+ <Step title='事件流转' disabled />
+ <Step title='办理反馈' disabled />
+ <Step title='结案审核' disabled />
+ <Step title='当事人评价' disabled />
+ <Step title='结案归档' disabled />
+ </Steps>
+ </div>
+ <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>
+ <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleReview}>预览</Button>
+ <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleSubmit}>提交</Button>
+ <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={() => selfAcceptance()}>自行受理</Button>
+ <Button type='secondary' onClick={handleReview}>返回上级页面</Button>
+ </Space>
+ </div>
+ </Fragment>
</NewPage>
</div>
)
--
Gitblit v1.8.0